91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

關于SnackBar被鍵盤擋住的解決方案

發布時間:2020-07-19 16:52:53 來源:網絡 閱讀:2106 作者:洛基loky 欄目:移動開發

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

但是問題也隨之而來,我在登錄注冊等需要用到鍵盤的地方,如果我沒手動關閉鍵盤,那snackbar就會被鍵盤給擋住,導致用戶看不到相應的提示。
對此有以下兩個解決辦法:
1.在用戶點擊提交的時候關閉鍵盤

關于關閉鍵盤,android沒有直接提供給我們方法提供,可以使用如下方法

/**
 * 關閉鍵盤
 */
@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)) {//先判斷鍵盤是否是開啟狀態,是則關閉
        imm.toggleSoftInput(0, InputMethodManager.HIDE_NOT_ALWAYS);
    }
}

/**
 * 判斷鍵盤是否在顯示
 */
@RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN_MR1)
public static boolean isSoftShowing(Activity context) {
    //獲取當前屏幕內容的高度
    int screenHeight = context.getWindow().getDecorView().getHeight();
    //獲取View可見區域的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();
    //這個方法獲取可能不是真實屏幕的高度
    activity.getWindowManager().getDefaultDisplay().getMetrics(metrics);
    int usableHeight = metrics.heightPixels;
    //獲取當前屏幕的真實高度
    activity.getWindowManager().getDefaultDisplay().getRealMetrics(metrics);
    int realHeight = metrics.heightPixels;
    if (realHeight > usableHeight) {
        return realHeight - usableHeight;
    } else {
        return 0;
    }
}
2.當鍵盤彈起時,讓鍵盤把snackBar頂起來,效果圖如下

關于SnackBar被鍵盤擋住的解決方案

關于這樣的做法相對于關閉鍵盤要簡單的多,只需要在manifests中為對應的activity加上這句配置即可:

android:windowSoftInputMode="stateAlwaysHidden|adjustResize"

這條配置的主要作用就是讓鍵盤不要擋住我們輸入的內容,對應的activity有了以上配置就可以實現上述效果了O(∩_∩)O

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

汝城县| 临高县| 淮北市| 永靖县| 锡林郭勒盟| 紫阳县| 利川市| 抚松县| 花垣县| 阿拉善右旗| 酒泉市| 彭泽县| 于田县| 诏安县| 泸西县| 平顺县| 巴南区| 城口县| 贺州市| 平昌县| 廉江市| 兖州市| 连平县| 闽清县| 诸城市| 盐城市| 兴隆县| 巴林右旗| 白山市| 察雅县| 永州市| 博野县| 巴里| 扬中市| 建水县| 铜陵市| 刚察县| 新昌县| 安岳县| 临汾市| 梅州市|