日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

item不可见 recycleview_RecyclerView不显示Item

發布時間:2023/12/19 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 item不可见 recycleview_RecyclerView不显示Item 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

今天在寫一個橫向的RecyclerView,寫完運行后怎么都沒顯示item內容,開始以為是數據沒加載,打斷點調試后發現數據加載是沒問題的,瞬間懵逼。。。

Tools -> Layout Inspector 看下布局結構,能看到item存在,但是檢查屬性發現所有item的寬度都為0,所以在界面上看不到有item顯示,可是item是有固定寬度的。。。

到這,其實可以基本定位到item的布局加載問題,而我使用的加載的方式是:

View.inflate(parent.context, R.layout.item_home_channel_normal, null)

后面修改后,正確的加載方式是:

LayoutInflater.from(parent.context).inflate(R.layout.item_home_channel_normal, parent, false)

查看源碼會發現View.inflate()內部就是使用LayoutInflater的inflate()方法

inflate(@LayoutRes int resource, @Nullable ViewGroup root, boolean attachToRoot)

關鍵在于三個參數的使用:

如果inflate(layoutId, root, false ) 則layoutId的最外層的控件的寬高是沒有效果的

如果inflate(layoutId, root, true ) 則layoutId的最外層控件的寬高能正常顯示

郭大神的結論是:

1、如果root為null,attachToRoot將失去作用,設置任何值都沒有意義。

2、如果root不為null,attachToRoot設為true,則會給加載的布局文件的指定一個父布局,即root。

3、如果root不為null,attachToRoot設為false,則會將布局文件最外層的所有layout屬性進行設置,當該view被添加到父view當中時,這些layout屬性會自動生效。

4、在不設置attachToRoot參數的情況下,如果root不為null,attachToRoot參數默認為true。

上面的View.inflate(parent.context, R.layout.item_home_channel_normal, null)相當于

inflate(layoutId, null, false),所以顯示沒有達到預期。

總結

以上是生活随笔為你收集整理的item不可见 recycleview_RecyclerView不显示Item的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。