Android NestedScrollView嵌套LinearLayout嵌套RecyclerView子Item布局显示不全
程序员文章站
2022-06-21 23:22:27
Android NestedScrollView嵌套LinearLayout嵌套RecyclerView子Item布局显示不全显示不全原因解决方法一:解决方法二:解决方法三:历史上的今天(2021/3/3):1971年3月3日,在*“我们也要搞人造卫星”指示的鼓舞下,我国成功地发射了一颗科学实验人造地球卫星。 卫星重221公斤。其运行轨道距地球最近点266公里,最远点1826公里,轨道平面与地球赤道平面的夹龟为69.9度;绕地球一周需时106分钟。它用20009兆赫和19995兆赫的频率成功地...
显示不全原因
业务需求效果图(1.1)
:
ScrollView的onMeasure 和 LinearLayout的onMeasure冲突,导致LinearLayout无论是否设置宽度 = match_parent 都将自动计算
解决方法一:
将RecyclerView使用RelativeLayout包裹,并添加android:descendantFocusability="blocksDescendants"属性
<RelativeLayout
android:layout_width="match_parent"
android:descendantFocusability="blocksDescendants"
android:layout_height="wrap_content">
<android.support.v7.widget.RecyclerView
android:id="@+id/rel"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
</RelativeLayout>
android:descendantFocusability属性的含义是:
当一个view获取焦点时,定义ViewGroup和其子控件两者之间的关系。
它一共有3个属性值,它们分别是:
-
beforeDescendants 会优先子类控件而获取焦点
-
afterDescendants只有当子类控件不需要获取焦点的时候才去获取焦点
-
blocksDescendants会覆盖子类控件而直接获取焦点
解决方法二:
先在xml布局中将你的ScrollView替换成android.support.v4.widget.NestedScrollView,并在java代码中设置
recyclerView.setNestedScrollingEnabled(false);
解决方法三:
将子条目布局由LinearLayout替换为RelativeLayout即可(亲测有效)
本文地址:https://blog.csdn.net/weixin_44819566/article/details/114303986
上一篇: C++基础入门篇之强制转换
下一篇: 我老婆是珍珠