更新 RecyclerView 的高度
Update height of RecyclerView
我有一个带有 ViewFlipper -> NestScrollview -> LinearLayout 的布局(两个 RecyclerView 的父级)。两个 RV 都将高度设置为 wrap_content 和 setNestedScrollingEnable(false)。现在的问题是,只要其中一个 RV 的适配器被过滤,即使项目数量减少,它仍然保持旧视图大小。如何使 RV 大小适应项目大小的新变化?当我将两个 RV 嵌套在 NestedScrollView 中时,我意识到这种情况开始发生。无论如何要在更新 RV 的内容时更新子视图大小。调用 notifyDataSetChanged() 不会更新视图大小
如果您在每次过滤列表时将 notifyDataSetChanged 放入适配器,它应该可以工作。这是我的一个项目的示例,我在其中根据搜索视图查询过滤列表,每次重新分配列表时,我都会在适配器中调用 notifyDataSetChanged()
@Override
protected void publishResults(CharSequence charSequence, FilterResults filterResults) {
if (!listFiltered.isEmpty()) {
listItems = (ArrayList<ListaConsultaFamilia>) filterResults.values;
notifyDataSetChanged();
}
}
我有一个带有 ViewFlipper -> NestScrollview -> LinearLayout 的布局(两个 RecyclerView 的父级)。两个 RV 都将高度设置为 wrap_content 和 setNestedScrollingEnable(false)。现在的问题是,只要其中一个 RV 的适配器被过滤,即使项目数量减少,它仍然保持旧视图大小。如何使 RV 大小适应项目大小的新变化?当我将两个 RV 嵌套在 NestedScrollView 中时,我意识到这种情况开始发生。无论如何要在更新 RV 的内容时更新子视图大小。调用 notifyDataSetChanged() 不会更新视图大小
如果您在每次过滤列表时将 notifyDataSetChanged 放入适配器,它应该可以工作。这是我的一个项目的示例,我在其中根据搜索视图查询过滤列表,每次重新分配列表时,我都会在适配器中调用 notifyDataSetChanged()
@Override
protected void publishResults(CharSequence charSequence, FilterResults filterResults) {
if (!listFiltered.isEmpty()) {
listItems = (ArrayList<ListaConsultaFamilia>) filterResults.values;
notifyDataSetChanged();
}
}