Android編輯框被IME遮蓋,有效處理辦法

來源:互聯網
上載者:User

標籤:

出現這個問題, 主要是在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遮蓋,有效處理辦法

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.