質問: 以前はAndroidでナビゲーションバーが表示されていたと思うのですが、 cocos2d-x 3.12にしたらデフォルトでナビゲーションバーが表示されないようになりました。 上のステータスバーは表示せず、ナビゲーションバーだけ表示させるようにするにはどうすればいいでしょうか? Android Studioを使っています。
回答: v3.12では、AndroidManifest.xmlのテーマの設定は無視されます。 実際に、ステータスバーなどの表示を制御しているのは、下記の部分です。 * プロジェクト/cocos2d/cocos/platform/android/java/src/org/cocos2dx/lib/Cocos2dxActivity.java (419行目~) ``` protected void hideVirtualButton() { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { 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 // hide nav bar | View.SYSTEM_UI_FLAG_FULLSCREEN // hide status bar | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY); } } ``` この行をコメントアウトすれば、ナビゲーションバーやステータスバーを表示できます。 ``` | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION // hide nav bar | View.SYSTEM_UI_FLAG_FULLSCREEN // hide status bar ``` * ナビゲーションバーだけを表示する場合は、下記のようにします。 ``` protected void hideVirtualButton() { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { 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 // hide nav bar | View.SYSTEM_UI_FLAG_FULLSCREEN // hide status bar | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY); } } ```