簡體   English   中英

僅隱藏所有回收站視圖項的視圖

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM