Android之recyclerview報錯-No adapter attached; skipping layout解決方法

煩煩煩,最近過年到處是人請客下館子,整天迷迷糊糊的,老是忘東忘西,搞得幾個recyclerview各種出現(xiàn)No adapter attached; skipping layout的問題,記錄一下,免得又出錯。

1、沒有設(shè)置LayoutManager

//設(shè)置布局管理就ok了
layoutManager=new StaggeredGridLayoutManager( 2,StaggeredGridLayoutManager.VERTICAL );
rec_xkjd.setLayoutManager( layoutManager );
rec_xkjd.setAdapter( myXKJDadapter );

這個一定要設(shè)置,不然你的recyclerview是無論如何出不來的,為什么呢?

因為recyclerview很靈活,支持縱向的橫向的列表,還支持網(wǎng)格式布局、瀑布流布局......等等眾多樣式。你如果不給她指定一個布局,就想讓她顯示,她會很為難的(⊙o⊙)~。就好比是叫人打球但不給球,叫人吃飯但不給碗。

2、沒考慮Activity或Fragment的生命周期

有時會因為某些需求導(dǎo)致在onResume或onStart方法中重置了recyclerview,但其數(shù)據(jù)已經(jīng)丟失或沒有重新設(shè)置Adapter,就會報錯No adapter attached; skipping layout

解決方法視具體情況而定,一般是把recyclerview這一整套代碼寫在onCreate里面就不用擔(dān)心出問題。如果一定要在onStart里面寫的話......額,還是不建議,畢竟每次onStart方法執(zhí)行就重置一下recyclerview會極大降低用戶友好度。

打個比方:我逛淘寶,往下翻了幾十頁后,點擊一個item查看商品詳情,結(jié)果返回時執(zhí)行了onStart()方法讓列表重置了,我又得翻好幾十頁才能接上上次看到的地方。Oh my god??!

3、寫Adapter時忘了重寫getItemCount()方法

害慘我了,找了各個地方代碼都沒發(fā)現(xiàn)問題,Log打印數(shù)據(jù)列表也沒毛病,就是不顯示,一直報錯。最后才發(fā)現(xiàn)這個方法忘記改了。

getItemCount()方法創(chuàng)建時默認(rèn)返回0(寫完其他的就把這方法忘了,坑啊~),表示列表中item個數(shù)為0個,所以不顯示。改成數(shù)據(jù)列表的大小就ok了。

@Override
    public int getItemCount() {
        //return 0;
        //改成下面就好了
        return myList.size();
    }

總結(jié)

嗯⊙?⊙!,細(xì)心就好了。

暫時就這么多,可能不全面,以后遇到了別的突發(fā)情況再補充哈。

最后,今天是老媽生日,祝老媽生日快樂!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容