我希望在单击时隐藏 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);
}
上面的代码对我来说很好,但问题是当转换 od 动作和通知栏从显示到隐藏时用户看到的混蛋,反之亦然。
为了避免这种混蛋,我在 onCreate 方法中添加了以下行,但是当操作栏从不可见状态变为可见时,它会导致操作栏覆盖 UI 元素。
requestWindowFeature(com.actionbarsherlock.view.Window.FEATURE_ACTION_BAR_OVERLAY);
当它从隐藏状态变为可见状态时,是否有任何方法可以让混蛋也不存在并且操作栏不会覆盖在 UI 元素上?