Android SDK目前提供的軟鍵盤彈出模式接口只有兩種:
一是彈出時自動回沖界面,將所有元素上頂,
一種則是不重繪界面,直接將控件元素遮住,
沒有其他模式,如果想實現其他效果,光使用系統接口是不行的。
解決方法:
第一步:給想要被頂上去的內容嵌套一個 ScrollView :
<ScrollView
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:scrollbars="none"
>
…… 想要被頂上去的內容 ……
</ScrollView>
第二步:在 文件中給對應的 Activity 設置 android:windowSoftInputMode="adjustResize"
一些機型到這里問題就已經解決了!
有些機型會出現點擊過 EditView 它獲得了焦點也彈出了軟鍵盤,
但是收回軟鍵盤后,再點擊該 EditView 會出現被軟鍵盤遮擋的情況,
點其它 EditView 后,再來點該 EditView 又恢復正常不再被遮擋,
為了解決此問題見如下:
第三步:
發現去掉 ScrollView 的 android:scrollbars="none" 屬性后問題就解決了!
但會出現滾動條,所以這個屬性不能去掉,
只需在 Activity 的 onCreate 事件處理函數中的 setContentView 方法后緊跟着寫上
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);
即可解決此問題!