シングルタップでSherlockアクションバーを非表示にし、ユーザーが別のシングルタップを行ったときに表示して、シングルタップを交互に表示/非表示にしようとしています。
表示と非表示のコードは次のとおりです。
@Override
public boolean onSingleTapConfirmed(MotionEvent e) {
ActionBar actionBar = getSupportActionBar();
if (actionBar.isShowing()) {
actionBar.hide();
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN);
} else {
actionBar.show();
getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
}
return super.onSingleTapConfirmed(e);
}
上記のコードは私にとっては問題なく動作しますが、問題は、アクションと通知バーが表示から非表示に、またはその逆に遷移するときに、ユーザーに表示されるジャークです。
ジャークを回避するために、onCreate メソッドに次の行を追加しましたが、アクション バーが非表示の状態から表示されるようになると、アクション バーが UI 要素を覆うようになります。
requestWindowFeature(com.actionbarsherlock.view.Window.FEATURE_ACTION_BAR_OVERLAY);
非表示から表示状態になったときに、ジャークも存在せず、アクションバーが UI 要素にオーバーレイされない方法はありますか?