在show / hide上替代ActionBar jerk

时间:2013-06-14 09:26:29

标签: java android actionbarsherlock

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

1 个答案:

答案 0 :(得分:1)

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

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

我知道SlidingDrawer在API 17中已弃用,但您可以随时使用它的自定义实现。我相信这对你来说非常顺利。