android - recyclerview顯示錯亂
問題描述
滑動的時(shí)候,不該顯示的item也顯示了標(biāo)注(就是那個(gè)數(shù)字1)
@Override public void onBindChildViewHolder(MyChildViewHolder holder, int groupPosition, int childPosition, int viewType) { //...if (studentBean.getGalleryCount() != 0) { holder.childAlbumNum.setText(' ' + studentBean.getGalleryCount() + '’ ');} else { holder.childAlbumNum.setVisibility(View.GONE);} //... }
問題解答
回答1:RecyclerView是用于重用的,也就是說你的每一個(gè)條目,使用的有可能是前面已經(jīng)使用過的布局對象。所以你在onBindChildViewHolder里應(yīng)該對某些View的顯示與否做一下初始化設(shè)定。你的代碼里,我看到了你僅僅在某種情況下隱藏了一個(gè)View,但是卻沒有初始化它的顯示與否,這樣可能由于上一次顯示時(shí)是GONE的,這一次你設(shè)置的數(shù)據(jù),但是因?yàn)闆]有設(shè)置VISIBLE,所以就導(dǎo)致顯示不出來了。你的問題應(yīng)該就是這個(gè),建議你在onBindChildViewHolder的開始部分加入:
holder.childAlbumNum.setVisibility(View.VISIBLE);回答2:
沒看出哪里有問題,那個(gè)數(shù)字1?
相關(guān)文章:
1. android-studio - Android 不同的Drawable 文件夾對圖片做的什么處理2. angular.js - angularjs單選問題3. angular.js - angular指令通過"="不能獲取數(shù)據(jù)4. angular.js - angularjs實(shí)現(xiàn)點(diǎn)擊事件后,在firefox生效卻在360瀏覽器不起作用5. angular.js - angularjs如何傳遞id給另一個(gè)視圖 根據(jù)id獲取json數(shù)據(jù)?6. angular.js - angularjs怎么實(shí)現(xiàn)跳轉(zhuǎn)的,是要寫路由嗎7. angular.js - 想用angular實(shí)現(xiàn)模擬select下拉框效果,如下圖,但是不知道怎么去實(shí)現(xiàn)?8. android - WebView加載天貓等購物網(wǎng)頁出問題?9. Angular.js 依賴注入問題10. android glide asbitmap 在baseadpter中的問題