アクティビティが開始されたときにアクションバーを非表示にし、ユーザーが画面に触れたときに数秒間表示してから、再び非表示にしたい。
私が思いついたのはすぐ下ですが、もっと良いことができるかどうか知りたいです(いくつかのスタイルの問題を無視します:マジックナンバー、ロジックの重複など)。
そして私はactionbarsherlockを使用しています。
ありがとう
ランナブル hideActionbarRunnable = new Runnable() { @オーバーライド public void run() { ActionBar バー = getSupportActionBar(); bar.hide(); } }; ランナブル showActionbarRunnable = new Runnable() { @オーバーライド public void run() { ActionBar バー = getSupportActionBar(); bar.show(); } }; ランナブル animateActionBarHide = new Runnable() { @オーバーライド public void run() { handler.postDelayed (hideActionbarRunnable,3000); } }; ランナブル animateActionBarShow = new Runnable() { @オーバーライド public void run() { handler.post(showActionbarRunnable); handler.postDelayed (hideActionbarRunnable,3000); } }; @オーバーライド 保護されたボイド onResume() { super.onResume(); Log.i(MainActivity.TAG,"CameraActivity: onResume が呼び出されました"); スレッド t = 新しいスレッド (animateActionBarHide); t.start(); } @オーバーライド public boolean onTouchEvent(MotionEvent イベント) { ActionBar バー = getSupportActionBar(); if(event.getAction() == MotionEvent.ACTION_DOWN) { スレッド t = 新しいスレッド (animateActionBarShow); t.start(); } そうしないと { スレッド t = 新しいスレッド (animateActionBarHide); t.start(); } super.onTouchEvent(イベント)を返します。 }