標籤:
出現這個問題, 主要是在4.4之後, 允許使用沈浸式標題列後, 4.4之前的 或 4.4之後沒有使用沈浸式標題列的 都沒問題, 所以, 如果 你的app使用沈浸式標題列, 並且 需要輸入內容, 就可以用這個辦法
1.在xml中主體部分的外面加一層ScrollView,就是圖中紅線圈中的地方
2. 在activity的onCreate中 加入這段代碼
if (Build.VERSION.SDK_INT >= 19) { final View decorView = getWindow().getDecorView(); decorView.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() { @Override public void onGlobalLayout() { Rect rect = new Rect(); decorView.getWindowVisibleDisplayFrame(rect); int screenHeight = decorView.getRootView().getHeight(); int height = screenHeight-rect.bottom; LayoutParams layoutParams = scrollView.getLayoutParams();//(LayoutParams是什麼類型取決於ScrollView的父級是什麼類型) layoutParams.setMargins(0,0,0,height); scrollView.requestLayout(); } });}
通常這樣就可以了, 但還有一個小問題, 像我中 頁面的下面 有一個提交的button,這個button並不在scrollview中, 這種情況會造成 實際顯示時 IME的最上邊 和 當前輸入的編輯框之間有 段 間隔,距離就是這個按鈕的距離, 這個距離應該是放這個按鈕的, 但 我還不知道怎麼能讓這個按鈕 在 輸入時 上去, 就像4.4之前那樣
這是xml布局 最上面include的是標題,TextView是提交按鈕,下面就是中間的本文 scrollView
我把這個比較笨的方法 寫出來, 是因為 我之前在解決這個問題時 百度 google了好久 都沒有什麼真正的好方案, 我這個方案雖然不是很好,但 至少能先解決問題, 希望能協助到各位, 如果有更好的解決方案, 請不吝賜教
qq:1075770442
Android編輯框被IME遮蓋,有效處理辦法