輸入法彈出時界面變化特點

        在有edittext的界面中,一旦其獲取到焦點,就會彈出輸入法,控件重繪,在AndroidManifest.xml的Activity設置屬性:android:windowSoftInputMode = "adjustResize"的情況下(默認),有時會出現頁面的部分佈局被擠掉了,而部分佈局又沒有被擠掉的情況,稍不注意就會導致頁面不美觀。在這種情況下,軟鍵盤彈出時,會對主窗口布局重新進行佈局,如果頁面使用LinearLayout進行佈局,且設置了weight,那麼設置weight的部分會被輸入法擠掉。

        我們可以利用上述特點,來控制輸入法彈出後的界面。如果需要顯示edittext下方的按鈕,可以使用LinearLayout佈局,並使edittext上方的佈局weight屬性爲1,這樣的話當輸入法彈出時,那個佈局就會被擠掉,下方的按鈕就會上浮。或者使用Relative佈局,按鈕alignParentBottom,中間留出空白,輸入法彈出會使空白部分會被擠掉,有可能與上面的佈局相重疊。如果不在AndroidManifest.xml的Activity設置屬性:android:windowSoftInputMode = "adjustResize",若edittext位置比較靠下,則edittext會被輸入法擠上去,但下面的按鈕不會上浮。

        有一種特殊情況,就是如果按鈕上方帶edittext的佈局是scrollview的話,那麼就算不設置"adjustResize",也可以使按鈕上浮,而且沒有顯示完的部分可以滑動查看。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章