仮定する状況
たとえば、ドロワーの上に横方向のRecyclerView
を配置した場合、RecyclerView
の項目をスクロールしようとするとドロワーが閉じてしまう。
また他にも、ViewPager
でタブフラグメントを表示して、その上に同じように横方向にスクロールできるビューを配置したい場合などでも同様。
対応策
そのような場合に、操作対象のビューのタッチイベントだけを処理してドロワーやらタブやらの切り替えを防ぐには、次のようにしてタッチイベントの伝播を防ぐことができる。
targetView.setOnTouchListener { view, ev ->
// 伝播を防ぐ
parent.requestDisallowInterceptTouchEvent(true)
// ビューに対する処理
// ~~~
false
}
RecyclerView
とかなら、項目のタッチイベントで同じようにすればよい。