アクティビティが開始されたときにアクションバーを非表示にし、ユーザーが画面に触れたときに数秒間表示してから、再び非表示にしたい。
私が思いついたのはすぐ下ですが、もっと良いことができるかどうか知りたいです(いくつかのスタイルの問題を無視します:マジックナンバー、ロジックの重複など)。
そして私は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(イベント)を返します。
}