タブレットをインタラクティブな広告やゲームのディスプレイとして使用したいクライアント向けのアプリを開発しています。タブレットは、物理的なボタンの使用を避けるホルダーに配置されます。
アプリをフルスクリーンで実行しようとしていますが、上からスワイプすると、アプリをフルスクリーンのままにしたいと思います。しかし、ステータスバーとボタンが一瞬表示されます。
私の活動のコード:
public class OrderActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_order);
hideSystemUi();
getWindow().getDecorView().setOnSystemUiVisibilityChangeListener(
new OnSystemUiVisibilityChangeListener() {
@Override
public void onSystemUiVisibilityChange(int visibility) {
if (visibility == 0) {
hideSystemUi();
}
}
});
}
private void hideSystemUi() {
getWindow().getDecorView().setSystemUiVisibility(
View.SYSTEM_UI_FLAG_LAYOUT_STABLE
| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
| View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_FULLSCREEN
| View.SYSTEM_UI_FLAG_IMMERSIVE);
}
}
PD: この動作がマーケットプレイスのアプリで嫌われていることは知っていますが、この特定のケースではそれが必要であり、「正しい」ものです。