Android適配華為手機虛擬按鍵顯示或隱藏
阿新 • • 發佈:2019-01-01
華為的一些手機的螢幕上的虛擬按鍵是可以顯示或者隱藏的,因此在佈局適配的時候就要考慮到這個問題,要不然當虛擬按鍵被隱藏後介面的佈局就會出現問題,下面給出一種解決方法,(原文來自:安卓適配碰到的一些問題)
因為虛擬按鍵的開啟會涉及到view的重繪,因此可以重寫根layout中的onLayout方法來實現。假設根layout是FrameLayout
public class RootLayout extends FrameLayout{
public RootLayout(Context context,AttributeSet attrs){
super(context,attrs);
}
@Override
protected void onLayout(boolean change,int left,int top,int right,int bottom){
super.onLayout(change,left,top,right,bottom);
int tempWindowHeight = Util.getWindowManager().getDefaultDisplay() - Util.getStatusBarHeight(getContext());
//Util.windowHeight為事先快取的高度
if(tempWindowHeight != Util.windowHeight){
Util.windowHeight = tempWindowHeight;
Util.windowWidth = Util.getWindowManager().getDefaultDisplay().getWidth();
}
}
}