簡體   English   中英

RecyclerView 沒有返回所有項目

[英]RecyclerView is not returning all items

我正在制作我的第一個 java android 應用程序,我遇到了 RecyclerView 的一些問題。

我有一個 RecyclerView,每個元素都有一個自定義布局。

我想讓當我按下工具欄按鈕時,RecyclerView 內每個布局元素內的圖像按鈕變為可見或不可見

這是工具欄編輯按鈕代碼:

            ArrayList<View> dest=new ArrayList<View>();
            recView= findViewById(R.id.newListView);
            recView.setItemViewCacheSize(0);
            recView.findViewsWithText(dest,getString(R.string.onesingleuserlayout),View.FIND_VIEWS_WITH_CONTENT_DESCRIPTION);

            for (View oneUserLayout:dest)
            {
                oneUserLayout.findViewById(R.id.btnDelete).setVisibility(newVisibility);
                oneUserLayout.findViewById(R.id.btnEdit).setVisibility(newVisibility);
            }

它隱藏了幾乎所有元素,但不是每一個元素。 顯示的行為正確,有時未顯示的行為不正確。

截屏

我認為它與緩存的項目有關。

刪除此行,以允許緩存:

recView.setItemViewCacheSize(0);

這里解釋了它是如何工作的(這也可以解釋為什么需要緩存)。

嘗試更改您的方法,而不是從 RecyclerView 外部調用所有這些 findView 方法,而是在適配器上實現一個方法來更改代表按鈕可見性的 boolean 變量,然后調用 notifyDataSetChanged 以強制布局管理器重繪所有可見元素並且由於所有項目都引用 boolean 變量,因此當重新繪制新項目時,它們將具有新的可見性。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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