フラグSYSTEM_UI_FLAG_FULLSCREEN
を使用しSYSTEM_UI_FLAG_HIDE_NAVIGATION
て、ステータス バーとナビゲーション バーの両方を非表示および表示しています。それらは正しく機能しています。アクティビティの開始時にそれらを非表示にしており、タッチイベントで再度表示したい. Android は、最初のタッチ イベントでそれらを自動的に表示します (この最初のタッチ イベントはアプリに渡されません)。sendMessageDelayed()
一定時間後に両方のバーを非表示にするために使用することを考えています。このファースト タッチ イベントをどのように使用できますか?
質問する
5534 次
2 に答える
7
を使って入手しましたView.OnSystemUiVisibilityChangeListener
。Handler.sendMessageDelayed
ステータス バーとナビゲーション バーの両方が表示されている場合に、if 条件内で使用しました。明確にするために、以下の実装を参照してください。
出典 : UI 表示の変更への対応
View decorView = getActivity().getWindow().getDecorView();
decorView.setOnSystemUiVisibilityChangeListener(new View.OnSystemUiVisibilityChangeListener() {@Override
public void onSystemUiVisibilityChange(int visibility) {
if ((visibility & View.SYSTEM_UI_FLAG_FULLSCREEN) == 0) {
// TODO: The system bars are visible. Make any desired
Message msg = mHandler.obtainMessage(HIDE_STATUSBAR); //Implement your hide functionality accordingly
mHandler.sendMessageDelayed(msg, 3000);
} else {
// TODO: The system bars are NOT visible. Make any desired
}
}
}
});
このアプローチの欠点は、最初のタッチ イベントをアプリで使用できないことです。その場合、 WindowManager.LayoutParamsやImmersive Fullscreen Modeなどの他のアプローチを使用する必要があると思います。
于 2015-08-26T20:39:15.617 に答える