關(guān)于SnackBar被鍵盤(pán)擋住的解決方案

snackbar比toast好看多了,所以新的app我把所有的toast都替換成了snackbar狼犯。

但是問(wèn)題也隨之而來(lái)余寥,我在登錄注冊(cè)等需要用到鍵盤(pán)的地方领铐,如果我沒(méi)手動(dòng)關(guān)閉鍵盤(pán)复哆,那snackbar就會(huì)被鍵盤(pán)給擋住你踩,導(dǎo)致用戶(hù)看不到相應(yīng)的提示侦镇。
對(duì)此有以下兩個(gè)解決辦法:
1.在用戶(hù)點(diǎn)擊提交的時(shí)候關(guān)閉鍵盤(pán)

關(guān)于關(guān)閉鍵盤(pán)尝艘,android沒(méi)有直接提供給我們方法提供浅辙,可以使用如下方法

/**
 * 關(guān)閉鍵盤(pán)
 */
@RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN_MR1)
public static void disappearKeybaroad(Activity context) {
    InputMethodManager imm = (InputMethodManager) context.getSystemService(INPUT_METHOD_SERVICE);
    if (isSoftShowing(context)) {//先判斷鍵盤(pán)是否是開(kāi)啟狀態(tài)灶平,是則關(guān)閉
        imm.toggleSoftInput(0, InputMethodManager.HIDE_NOT_ALWAYS);
    }
}

/**
 * 判斷鍵盤(pán)是否在顯示
 */
@RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN_MR1)
public static boolean isSoftShowing(Activity context) {
    //獲取當(dāng)前屏幕內(nèi)容的高度
    int screenHeight = context.getWindow().getDecorView().getHeight();
    //獲取View可見(jiàn)區(qū)域的bottom
    Rect rect = new Rect();
    context.getWindow().getDecorView().getWindowVisibleDisplayFrame(rect);
    return screenHeight - rect.bottom - getSoftButtonsBarHeight(context) != 0;
}

/**
 * 底部虛擬按鍵欄的高度
 *
 * @return
 */
@RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN_MR1)
private static int getSoftButtonsBarHeight(Activity activity) {
    DisplayMetrics metrics = new DisplayMetrics();
    //這個(gè)方法獲取可能不是真實(shí)屏幕的高度
    activity.getWindowManager().getDefaultDisplay().getMetrics(metrics);
    int usableHeight = metrics.heightPixels;
    //獲取當(dāng)前屏幕的真實(shí)高度
    activity.getWindowManager().getDefaultDisplay().getRealMetrics(metrics);
    int realHeight = metrics.heightPixels;
    if (realHeight > usableHeight) {
        return realHeight - usableHeight;
    } else {
        return 0;
    }
}
2.當(dāng)鍵盤(pán)彈起時(shí)乞旦,讓鍵盤(pán)把snackBar頂起來(lái)偏序,效果圖如下
圖片發(fā)自簡(jiǎn)書(shū)App

關(guān)于這樣的做法相對(duì)于關(guān)閉鍵盤(pán)要簡(jiǎn)單的多续膳,只需要在manifests中為對(duì)應(yīng)的activity加上這句配置即可:

android:windowSoftInputMode="stateAlwaysHidden|adjustResize"

這條配置的主要作用就是讓鍵盤(pán)不要擋住我們輸入的內(nèi)容改艇,對(duì)應(yīng)的activity有了以上配置就可以實(shí)現(xiàn)上述效果了O(∩_∩)O??

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市坟岔,隨后出現(xiàn)的幾起案子谒兄,更是在濱河造成了極大的恐慌,老刑警劉巖社付,帶你破解...
    沈念sama閱讀 206,126評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件承疲,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡鸥咖,警方通過(guò)查閱死者的電腦和手機(jī)燕鸽,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,254評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)啼辣,“玉大人啊研,你說(shuō)我怎么就攤上這事∨概。” “怎么了党远?”我有些...
    開(kāi)封第一講書(shū)人閱讀 152,445評(píng)論 0 341
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)富弦。 經(jīng)常有香客問(wèn)我沟娱,道長(zhǎng),這世上最難降的妖魔是什么腕柜? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 55,185評(píng)論 1 278
  • 正文 為了忘掉前任济似,我火速辦了婚禮,結(jié)果婚禮上盏缤,老公的妹妹穿的比我還像新娘砰蠢。我一直安慰自己,他們只是感情好蛾找,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,178評(píng)論 5 371
  • 文/花漫 我一把揭開(kāi)白布娩脾。 她就那樣靜靜地躺著,像睡著了一般打毛。 火紅的嫁衣襯著肌膚如雪柿赊。 梳的紋絲不亂的頭發(fā)上俩功,一...
    開(kāi)封第一講書(shū)人閱讀 48,970評(píng)論 1 284
  • 那天,我揣著相機(jī)與錄音碰声,去河邊找鬼诡蜓。 笑死,一個(gè)胖子當(dāng)著我的面吹牛胰挑,可吹牛的內(nèi)容都是我干的蔓罚。 我是一名探鬼主播,決...
    沈念sama閱讀 38,276評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼瞻颂,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼豺谈!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起贡这,我...
    開(kāi)封第一講書(shū)人閱讀 36,927評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤茬末,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后盖矫,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體丽惭,經(jīng)...
    沈念sama閱讀 43,400評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,883評(píng)論 2 323
  • 正文 我和宋清朗相戀三年辈双,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了责掏。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 37,997評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡湃望,死狀恐怖换衬,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情证芭,我是刑警寧澤冗疮,帶...
    沈念sama閱讀 33,646評(píng)論 4 322
  • 正文 年R本政府宣布,位于F島的核電站檩帐,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏另萤。R本人自食惡果不足惜湃密,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,213評(píng)論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望四敞。 院中可真熱鬧泛源,春花似錦、人聲如沸忿危。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,204評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)铺厨。三九已至缎玫,卻和暖如春硬纤,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背赃磨。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,423評(píng)論 1 260
  • 我被黑心中介騙來(lái)泰國(guó)打工筝家, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人邻辉。 一個(gè)月前我還...
    沈念sama閱讀 45,423評(píng)論 2 352
  • 正文 我出身青樓溪王,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親值骇。 傳聞我的和親對(duì)象是個(gè)殘疾皇子莹菱,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,722評(píng)論 2 345