Android工具栏隐藏并显示在RecycleView滚动条上

Android工具栏隐藏并显示在RecycleView滚动条上,android,android-actionbar,android-toolbar,ontouchlistener,Android,Android Actionbar,Android Toolbar,Ontouchlistener,我已经实现了自定义的工具栏,它工作得很好,我所想要的就是当我在屏幕上点击任意位置时,工具栏被隐藏,再次点击它就会显示,我通过以下代码实现了它。但是现在唯一的问题是,如果我滚动我的回收视图,工具栏将其视为触摸,并且再次隐藏并显示在滚动上,我不希望发生这种情况,请帮助 我正在使用Android Studio 并在其中回收eview+FrameLayout 在您的活动中: mrecyclerView.setOnTouchListener(new View.OnTouchListener() {

我已经实现了自定义的工具栏,它工作得很好,我所想要的就是当我在屏幕上点击任意位置时,工具栏被隐藏,再次点击它就会显示,我通过以下代码实现了它。但是现在唯一的问题是,如果我滚动我的回收视图,工具栏将其视为触摸,并且再次隐藏并显示在滚动上,我不希望发生这种情况,请帮助

我正在使用Android Studio 并在其中回收eview+FrameLayout

在您的活动中:

mrecyclerView.setOnTouchListener(new View.OnTouchListener() {
            @Override
            public boolean onTouch(View v, MotionEvent event) {
                if (event.getAction() == MotionEvent.ACTION_DOWN) {
                    if (getSupportActionBar().isShowing()) {
                        getSupportActionBar().hide();
                    } else {
                        getSupportActionBar().show();
                    }
                    return true;
                } else return false;
            }
        });
在上面的触摸之后,添加这个

mrecyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
            @Override
            public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
                getSupportActionBar().show();
                super.onScrolled(recyclerView, dx, dy);
            }
        });

然后对setOnFlingListener执行同样的操作。

您是否尝试将touch listener附加到根视图而不是recycler视图?@MohammedJunaid您指的是recyclerView上方使用的框架布局?先生,是的。您的片段/活动的根视图。@MohammedJunaid是的,先生,我试图附加它,但无法从静态上下文引用非静态方法“setOnTouchListener(android.view.view.OnTouchListener)”的错误,正在提交OnTouchListener您的framelayout是否有id?我应该在onFling中给出的值如下代码mrecycleView.setOnFlingListener(new RecycleView.OnFlingListener(){@Override public boolean onFling(int-velocityX,int-velocityY){getSupportActionBar().show();返回false;}});是的,但返回真的。不,先生,这对我没有帮助:(,如果我滚动recyclerView,同样的问题也会出现,它使工具栏在每次触摸时隐藏和可见。我想使工具栏保持隐藏状态,仅在触摸时显示
mrecyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
            @Override
            public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
                getSupportActionBar().show();
                super.onScrolled(recyclerView, dx, dy);
            }
        });