今天有朋友问我这个问题,我找到一个可行的方案,给大家分享一下
toolbar.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
//R.id.bottom_view是个ToolBar平级的view的id
return findViewById(R.id.bottom_view).dispatchTouchEvent(event);
}
});
一般都是这种情况:
<FrameLayout ...>
<ViewGroup...
android:id="@+id/bottom_view"
>
<Button .../>//被抢占点击事件的View
</ViewGroup>
<android.support.v7.widget.Toolbar
....>
</android.support.v7.widget.Toolbar>
</FrameLayout>
原理就是将Toolbar的触摸事件转换到和他平级的View中去分发消费。