在屏幕上的任何地方触摸时隐藏和显示工具栏

Hide and Show Toolbar on touching anywhere on screen

我已经成功实现了滚动工具栏 Hide/Show 但我卡在了 onTouch Hide/Show 工具栏 。我研究了许多相关问题,但对我没有任何帮助。我希望我的工具栏在用户 触摸屏幕 隐藏 并且在屏幕 [=] 时再次 显示 21=]又感动了,求助

I am using Android Studio

下面是我的 OnScrollListener java class

this.mrecyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
            int mLastFirstVisibleItem = 0;

        @Override
        public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
        }

        @Override
        public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
            super.onScrolled(recyclerView, dx, dy);
            final int currentFirstVisibleItem = layout.findFirstVisibleItemPosition();

            if (currentFirstVisibleItem > this.mLastFirstVisibleItem) {
                HomePage.this.getSupportActionBar().hide();
            } else if (currentFirstVisibleItem < this.mLastFirstVisibleItem) {
                HomePage.this.getSupportActionBar().show();
            }

            this.mLastFirstVisibleItem = currentFirstVisibleItem;
        }
    });

已更新

 mrecyclerView.setOnTouchListener(new View.OnTouchListener() {
            @Override
            public boolean onTouch(View v, MotionEvent event) {
                ActionBar actionBar = getSupportActionBar();
                if(actionBar.isShowing()) {
                    actionBar.hide();
                } else
                    actionBar.show();
                return false;
            }
        });

此代码有效,但现在的问题是每当我 触摸屏幕 显示工具栏 并且当我 拿起我的手指隐藏自己,因为我使用RecyclerView所以滚动变得越来越困难显示和隐藏。请帮助使其稳定,这样如果我触摸一次它保持显示状态,再触摸一次它就会隐藏自己。

将 onTouchListener 用于您的根布局。并在回调中编写代码。

给你。这应该有效:)

layout.setOnTouchListener(new View.OnTouchListener() {
            @Override
            public boolean onTouch(View v, MotionEvent event) {
                if (event.getAction() == MotionEvent.ACTION_DOWN) {
                    if (actionBar.isShowing()) {
                        actionBar.hide();
                    } else {
                        actionBar.show();
                    }
                    return true;
                } else return false;
            }
        });