0

我已经实现了定制工具栏所示,它是工作好,所有我想要的是当我点击屏幕上的工具栏被隐藏,任何地点上再次点击它会显示和我通过以下代码实现它。但现在唯一的问题是,如果我是滚动我的回收查看,工具栏将其作为触摸,并再次隐藏和滚动显示,我不希望它发生,请帮助。Android的工具栏被隐藏和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; 
      } 
     }); 
+0

您是否尝试将触摸侦听器附加到您的根视图而不是回收视图? –

+0

@MohammedJunaid你的意思是用于recyclerView先生之上的框架布局? –

+0

yess。你的片段/活动的根视图。 –

回答

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

+0

我应该在onFling给予什么样的价值观是像下面的代码 mrecyclerView.setOnFlingListener(新RecyclerView.OnFlingListener(){ @覆盖 公共布尔onFling(INT velocityX,诠释velocityY){ getSupportActionBar()显示()。 return false; } }); –

+0

yeap但返回true。 –

+0

不,先生,它没有帮助我:(,同样的问题是如果我滚动回收站查看它使工具栏隐藏和每个触摸可见,我想让我的工具栏保持隐藏,只有触摸显示 –