RecyclerView が一部の項目を非表示にした後、ほとんどの項目が空白になります。空白にスライドして非表示にしないと、それらが表示されません。したがって、アイテムを非表示にした後、アイテムの高さを 0 に設定して空白を非表示にし、非表示のアイテムが占有される問題を解決します。
コード:
//解决item隐藏占位问题,隐藏item设置其高度为0
RecyclerView.LayoutParams param = (RecyclerView.LayoutParams) ll_root.getLayoutParams();
if (data.isShow()) {
ll_root.setVisibility(View.VISIBLE);
param.height = LinearLayout.LayoutParams.WRAP_CONTENT; // 根据具体需求场景设置
param.width = LinearLayout.LayoutParams.MATCH_PARENT;
} else {
ll_root.setVisibility(View.GONE);
param.height = 0;
param.width = 0;
}
ll_root.setLayoutParams(param);