ScrollView嵌套RecyclerView,布局默认不停在顶部

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.

你可能感兴趣的:(ScrollView嵌套RecyclerView,布局默认不停在顶部)