close

有些Android 的手機的返回鍵以及Home鍵是虛擬的

也就是說他會占掉手機的畫面

所以如果想要畫面的完整性的話就需要將虛擬按鍵縮下去~~

利用下面的fun就可以達到這件事了

protected void hideBottomUIMenu() {
    if (Build.VERSION.SDK_INT > 11 && Build.VERSION.SDK_INT < 19) { // lower api
        View v = this.getWindow().getDecorView();
        v.setSystemUiVisibility(View.GONE);
    } else if (Build.VERSION.SDK_INT >= 19) {
        View decorView = getWindow().getDecorView();
        int uiOptions = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
                | View.SYSTEM_UI_FLAG_FULLSCREEN;
        decorView.setSystemUiVisibility(uiOptions);
    }
}

只是這樣寫虛擬按鍵出來後就消失不了了

所以要寫個監聽器來監聽虛擬按鍵的狀態

在onCreate裡面加入這個監聽器就可以了

 

View decorView = getWindow().getDecorView();
decorView.setOnSystemUiVisibilityChangeListener
        (new View.OnSystemUiVisibilityChangeListener() {
            @Override
            public void onSystemUiVisibilityChange(int visibility) {
                if ((visibility & View.SYSTEM_UI_FLAG_FULLSCREEN) == 0) {
                    //虛擬按鍵出現要做的事情
                    hideBottomUIMenu();
                } else {
                    //虛擬按鍵消失後要做的事情
                }
            }
        });
arrow
arrow
    文章標籤
    Android JAVA Navigation Bar
    全站熱搜

    小小工程師 發表在 痞客邦 留言(0) 人氣()