2

我希望在单击时隐藏 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 元素上?

4

1 回答 1

1

如何通过顶部的滑动菜单实现类似的行为?您可以将 roatation 设置为 SlidingDrawer 并使用它

 android:rotation="180" // in SlidingDrawer manifest tag. 

我知道在 API 17 中不推荐使用 SlidingDrawer,但您始终可以对此进行自定义实现。我相信这对您来说将是一个非常顺利的实施。

于 2013-06-27T12:05:46.770 回答