我非常使用数据绑定。我试图通过根据用户的查询更改项目的可见性来实现RecyclerView列表中的搜索。
我认为如果该项目与用户的查询不匹配,我将隐藏该项目。因此,用户将仅看到他查询的项目。
@BindingAdapter("visible")
public static void visibleWithBoolean(View view, boolean bool) {
view.setVisibility(bool ? View.VISIBLE : View.GONE);
}
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:visible="@{item.visible}"
>
似乎很简单?,我是这么认为的。
一切正常,物品看起来不可见。但是在项目变得不可见之后,在不可见项目的地方有空白。我尝试了不同的方式。但是没有得到解决。
我已经尝试过以下操作
requestLayout()
。setNestedScrolling(false)
holder.itemView.setVisibility(View.GONE);
holder.itemView.setLayoutParams(new RecyclerView.LayoutParams(0, 0));
adapter.notifyItemChanged(index);
更改可见性后