我正在嘗試設定一個回收器視圖,它使用 ConstraintLayout 顯示元素。我使用
來自 Android Studio 設計器的預覽
實際結果
運行 API 30/Android 11 的模擬 Pixel 5 的實際結果
uj5u.com熱心網友回復:
你的代碼在這里:
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RecipeViewHolder {
return RecipeViewHolder(
RecipeListEntryBinding.inflate(
LayoutInflater.from(
parent.context
)
)
)
}
不會在父視圖的背景關系中膨脹視圖,因此某些布局引數不會按照您的預期進行處理。在這種情況下,match_parent如果它不知道它的父母是誰,它就不能有寬度。將其更改為:
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RecipeViewHolder {
return RecipeViewHolder(
RecipeListEntryBinding.inflate(
LayoutInflater.from(
parent.context
),
parent,
false
)
)
}
另外,小費。您不需要創建一個伴生物件來保存您的 DiffCallback。而且您也不需要財產來持有object。為了更干凈的代碼,而不是
companion object {
private val DiffCallback = object : DiffUtil.ItemCallback<Recipe>() {
//...
}
}
你可以把
private object DiffCallback: DiffUtil.ItemCallback<Recipe>() {
//...
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/360246.html
標籤:安卓 科特林 安卓布局 android-recyclerview android-constraintlayout
上一篇:如何以編程方式為存盤在變數中的按鈕添加androiddrawable檔案的值?
下一篇:操作資料幀行Python
