http://blog.csdn.NET/a91694451/article/details/50469857
最近公司的項目里遇到了一個問題,就是最后適配的時候時候同事的華為手機時,由於底部帶有虛擬按鍵,所以正好遮住了底部導航欄的按鈕以及其他子頁面的一些存在於底部的功能。
也在網上找了些解決方案,但是不是很完美,下面說下我的解決步驟。
首先我找到了一個方案,說是在布局富容器中添加一句話
Android:fitsSystemWindows="true"
通過這句話讓布局容器來適應手機屏幕,加上了之后,果然管用,底部導航欄確實在虛擬按鍵彈出時也跟隨彈上來了,但是樣式很丑,虛擬按鍵的背景色是為透明色,看起來很不美觀,不像其他應用那樣是黑色的。
在繼續往下找,最后發現,是因為我在項目中設置了沉浸式通知欄導致的,取消掉了,果然好了,而且也不需要 Android:fitsSystemWindows="true"這句話就能完美適配了。
以上是我的解決方法,但是又有一個問題,就是沉浸式通知欄和底部虛擬按鍵不能共存么?如果有大神看到了,求解答。
還有一個辦法,對界面的windows對象使用以下方法:
- getDialog().getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);