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

时间:2017-07-22 14:26:31

标签: android android-actionbar android-toolbar ontouchlistener

我已经实现了自定义工具栏,它运行良好,我想要的是当我点击任何地方时,工具栏会隐藏然后再次点击它会显示,我通过以下代码实现了它。但现在唯一的问题是,如果我滚动我的recycleView ,工具栏将其视为触摸并再次隐藏并显示在滚动上,我不希望它发生,请帮助。

  

我正在使用Android Studio   还有RecycleView + 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;
            }
        });

1 个答案:

答案 0 :(得分:0)

在您的活动中:

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执行相同的操作。

相关问题