[英]hide only a view from all recycler view items
我有一個很少有視圖的回收站視圖項目。 我有一個設置,可以在顯示 Recycler 視圖后設置一個圖像視圖的可見性。 實現這種行為的最佳方法是什么?
我嘗試了什么,在適配器 ViewHolder class 中,我設置了一個 boolean 來隱藏元素,然后調用 notifysetDataChanged()
public static class ViewHolder extends RecyclerView.ViewHolder {
public ImageView imageView;
public ViewHolder(View itemView) {
super(itemView);
.....
}
public void bind(item: Model){
//check and set visibility
if(showImage) imageview.setVisibility
else imageview.setVisibility
}
}
從 onBindViewHolder 調用此綁定 function。
有沒有更好的方法來實現這一點,因為所有數據都保持不變,只有一個可見性發生了變化?
您的bind
方法很好,但調用notifyDataSetChanged()
將使您的整個列表重繪所有項目。 最好只重繪這些已更改的項目,然后使用notifyItemChanged(int position)
。 調用它只會使用所需position
進行單個onBindViewHolder
調用,因此只會重繪一個所需的項目(您的bind
調用)
請注意,還有更多方法可以防止整個列表重繪:
notifyItemChanged(int)
notifyItemInserted(int)
notifyItemRemoved(int)
notifyItemRangeChanged(int, int)
notifyItemRangeInserted(int, int)
notifyItemRangeRemoved(int, int)
你試試這個?
android:visibility="gone"
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.