如何在 ViewHolder 内部为 RecyclerView 膨胀视图



我正在尝试为RecyclerView的ViewHolder内部膨胀视图,但它不起作用。 如果有人给我有关以下示例代码的建议,我将不胜感激。

class MyProfileViewHolder(
itemView: View,
private val myProfileViewModel: MyProfileViewModel) : RecyclerView.ViewHolder(itemView) {
private val userImageView: ImageView = itemView.myProfileMainUserImageView
private val myProfileSelfIntroductionText: TextView = itemView.myProfileSelfIntroductionText
private val favoriteEmptyFrame: FrameLayout = itemView.favoriteEmptyFrame
fun bind() {
// DefaultImage
val url = myProfileViewModel.user.getProfileImageUrl(myProfileViewModel.selectedImageIndex, "medium")
profileViewHelper.setProfileMainImage(
userImageView,
myProfileViewModel.user.getProfileImageUrl(myProfileViewModel.selectedImageIndex, "medium"),
myProfileViewModel.user.gender
)
// Self introduction
myProfileSelfIntroductionText.text = myProfileViewModel.user.description
// favorite empty frame
when(myProfileViewModel.emptyViewType) {
MyProfileViewModel.EMPTY_VIEW_TYPE_FAVORITE -> {
// it doesn't work
LayoutInflater.from(itemView.context).inflate(R.layout.section_favorite_empty, favoriteEmptyFrame, false)
}
}
}

}

这是我在 Cacher 上尝试的示例代码,包括适配器和 xml 等其他文件。 https://snippets.cacher.io/snippet/e02fb192f90c21765e7e

我找不到一种方法,在创建viewHolder之前需要有一个膨胀的布局。

但是您可以使用以下代码解决此限制:

class MyProfileViewHolder(
itemView: View) : RecyclerView.ViewHolder(itemView) {
...
MyProfileViewHolder(LayoutInflater.from(context)
.inflate(R.layout.m_layout, container, false))

最新更新