ScrollView嵌套RecyclerView或者GridView的时候,会把他们上面的布局挤到屏幕之外,然后把它们自己显示在ScrollView的最上面。
解决方案一
原因是RecyclerView或者GridView抢了焦点。
只需要在ScrollView最顶部的控件加上即可:
android:focusable="true"
android:focusableInTouchMode="true"
解决方案二
ScrollView只能包含一个控件,所以我们通常它的唯一的子节点我们用LinearLayout或者RelatvieLayout,那么只需要一行代码即可搞定。
android:descendantFocusability=”blocksDescendants”
那么关于android:descendantFocusability,Google是这么定义的。
Defines the relationship between the ViewGroup and its descendants when looking for a View to take focus.
Must be one of the following constant values.
网友评论