1. 程式人生 > >Android適配華為手機虛擬按鍵顯示或隱藏

Android適配華為手機虛擬按鍵顯示或隱藏

華為的一些手機的螢幕上的虛擬按鍵是可以顯示或者隱藏的,因此在佈局適配的時候就要考慮到這個問題,要不然當虛擬按鍵被隱藏後介面的佈局就會出現問題,下面給出一種解決方法,(原文來自:安卓適配碰到的一些問題

因為虛擬按鍵的開啟會涉及到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(); } } }