200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > LinearLayout包裹RecycleView点击事件不响应

LinearLayout包裹RecycleView点击事件不响应

时间:2024-05-01 16:38:03

相关推荐

LinearLayout包裹RecycleView点击事件不响应

LinearLayout包裹RecyclerView,如果想给整个布局设置点击事件,发现当点击列表部分的时候点击事件不响应,猜测可能被recyclerview消耗了点击事件,所以只要让recycleview不拦截点击事件并且子view不消费这个事件,那么点击事件就会回传给父view也就是最外层的LinearLayout才处理这个事件,于是看了一下recycleview的源码:

通过onInterceptTouchEvent()和onTouchEvent()这2个方法,发现了一个参数mLayoutFrozen,如果他为true的时候,recycleview这2个方法都会返回false,也就不会拦截这个事件了。于是我找到设置这个方法的地方:

上面的注释也写的很清楚,设置他为true,相当于冻结了recycleview,不能滚动不能点击,但是设置了之后还是无法响应点击事件,于是我又看到注释上面写了 {@link #setAdapter(Adapter)} and {@link #swapAdapter(Adapter, boolean)} will automatically * stop frozen. 这句话意思就是setAdapter(Adapter)会把这个参数设为false,于是我找到setAdapter方法:

果然,于是我在setAdapter之后再setLayoutFrozen(),这样就达到需求了。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。