RecyclerView wrap_content 不适用于 API 23 及以上
RecyclerView wrap_content not working on API 23 and above
我有一个在 LinearLayout 内有 RecyclerView 的布局,它也在自定义 NestedScrollView 内。在 api 21 和 22 中,布局看起来应该显示 RecyclerView 的所有元素,但在 api 23 和更高版本中,只显示一两个项目,而屏幕的其余部分为空白。我知道 RecyclerView 的目的是不要使用 wrap_content,但我的理解是你可以。
我注意到,当 RecyclerView 上方的视图可见时,recyclerview 上的 wrap_content 工作正常,但在特定情况下,我遇到了问题,这些视图都以编程方式设置为消失,所以它似乎与此有关。所以我不确定该怎么办,因为这些观点应该已经消失了。这是我无法解决的 android sdk 错误吗?
<CustomNestedScrollView
android:id="@+id/editProfileScroll"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scrollbars="vertical">
<LinearLayout
android:id="@+id/editProfileMainContainer"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/material_baseline_grid_10x"
android:orientation="vertical">
<!-- More code: TextViews and TextViews inside LinearLayouts -->
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/editProfileFieldsRV"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</LinearLayout>
</CustomNestedScrollView>
尝试使用 RelativeLayout
而不是 LinearLayout
。
使用 LinearLayout
你必须设置
android:orientation="vertical"
android:weight_sum="3"
并且在每个元素中您必须添加 android:layout_weight="1"
.
通过执行上述操作,将 space 3 个项目均匀分布在垂直轴上。
我有一个在 LinearLayout 内有 RecyclerView 的布局,它也在自定义 NestedScrollView 内。在 api 21 和 22 中,布局看起来应该显示 RecyclerView 的所有元素,但在 api 23 和更高版本中,只显示一两个项目,而屏幕的其余部分为空白。我知道 RecyclerView 的目的是不要使用 wrap_content,但我的理解是你可以。
我注意到,当 RecyclerView 上方的视图可见时,recyclerview 上的 wrap_content 工作正常,但在特定情况下,我遇到了问题,这些视图都以编程方式设置为消失,所以它似乎与此有关。所以我不确定该怎么办,因为这些观点应该已经消失了。这是我无法解决的 android sdk 错误吗?
<CustomNestedScrollView
android:id="@+id/editProfileScroll"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scrollbars="vertical">
<LinearLayout
android:id="@+id/editProfileMainContainer"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/material_baseline_grid_10x"
android:orientation="vertical">
<!-- More code: TextViews and TextViews inside LinearLayouts -->
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/editProfileFieldsRV"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</LinearLayout>
</CustomNestedScrollView>
尝试使用 RelativeLayout
而不是 LinearLayout
。
使用 LinearLayout
你必须设置
android:orientation="vertical"
android:weight_sum="3"
并且在每个元素中您必须添加 android:layout_weight="1"
.
通过执行上述操作,将 space 3 个项目均匀分布在垂直轴上。