使用DrawerLayout过程中主页面内容被遮住且不能点击的一小解决方案

前几天,公司一同事让我帮忙解决用DrawerLayout时,DrawerLayout的侧边栏有种像Dialog那样的遮罩效果,而且主页面内容点击不了,他要实现的功能是:去掉遮罩效果,并且主页面内容例如Button之类的能够点击,并且触发点击时,侧边栏不能自动关闭,另外还要有常用的可以滑动侧边栏关闭侧边栏,点击侧边栏的item要能够触发相应的事件的效果,于是就有了以下的博客
首先,去掉遮罩效果很好实现,网上一大堆解决方案,一般是通过设置如下代码实现:drawer.setDrawerListener(toggle);
其次,主页面内容不能点击,这个很容易就知道是主页面事件被拦截了,那么是在DrawerLayout的onInterceptTouchEvent里面处理事件拦截还是在onTouchEvent里面处理拦截事件呢?嗯,这个问题要想清楚,首先,借用鸿洋的话语,DrawerLayout和DrawerView以及ContentView的关系就像爸爸和两个儿子,如果在onTouchEvent处理拦截事件,判断isDrawerOpen并且点击位置位于ContentView里面,那样的话就会导致钱被爸爸拿去了,大哥ContentView拿不到钱,那肯定不行,现在大哥要能触发事件,要拿到钱,所以要在爸爸将要把钱拿去的时候拿到钱才行,所以,最终要在onInterceptTouchEvent里面处理事件,我是通过自定义DrawerLayout来实现的,重要代码如下:

    
  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值