2013年8月12日 星期一

[Android] 虛擬鍵的隱藏與低可見度

以下的API LEVEL需求為14以上

低可見度
this.getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LOW_PROFILE);
隱藏
this.getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);

在這裡要注意的是,這些動作都是一次性的
當事件觸發虛擬鍵導致虛擬鍵的狀態被設定為顯示的時候
如果不再去設定它的狀態,他將會一直維持

同場加映:三秒中自動將虛擬鍵低可見化

private Handler myHandler = new Handler();

private Runnable runTimerStop = new Runnable() {
        @Override
        public void run() {
            hideNavigation();
        }
};

private void hideNavigation() {
        if (Build.VERSION.SDK_INT > 13)
                this.getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LOW_PROFILE);
}

//在dispatchKeyEvent中增加下列
myHandler.removeCallbacks(runTimerStop);
myHandler.postDelayed(runTimerStop, 3000);

沒有留言: