调整了部分问题
This commit is contained in:
@@ -25,7 +25,18 @@ class GenericPageAdapter<T, VB : ViewBinding>(
|
||||
|
||||
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): PageViewHolder {
|
||||
val view = LayoutInflater.from(parent.context).inflate(pageLayoutId, parent, false)
|
||||
return PageViewHolder(view)
|
||||
val holder = PageViewHolder(view)
|
||||
|
||||
// 在创建ViewHolder时设置ItemDecoration,只设置一次
|
||||
holder.childRecyclerView.addItemDecoration(
|
||||
GridSpacingItemDecoration(
|
||||
spanCount = 2,
|
||||
spacing = view.context.dpToPx(12),
|
||||
includeEdge = true // 包含边缘间距
|
||||
)
|
||||
)
|
||||
|
||||
return holder
|
||||
}
|
||||
|
||||
override fun onBindViewHolder(holder: PageViewHolder, position: Int) {
|
||||
@@ -35,19 +46,13 @@ class GenericPageAdapter<T, VB : ViewBinding>(
|
||||
override fun getItemCount(): Int = pages.size
|
||||
|
||||
inner class PageViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
|
||||
private val childRecyclerView: RecyclerView = itemView.findViewById(R.id.childRecyclerView)
|
||||
val childRecyclerView: RecyclerView = itemView.findViewById(R.id.childRecyclerView)
|
||||
|
||||
init {
|
||||
childRecyclerView.layoutManager = GridLayoutManager(itemView.context, 2)
|
||||
}
|
||||
|
||||
fun bind(items: List<T>) {
|
||||
childRecyclerView.layoutManager = GridLayoutManager(itemView.context, 2)
|
||||
|
||||
childRecyclerView.addItemDecoration(
|
||||
GridSpacingItemDecoration(
|
||||
spanCount = 2, // 2列
|
||||
spacing = itemView.context.dpToPx(6), // 12dp
|
||||
includeEdge = true // 包含边缘间距
|
||||
)
|
||||
)
|
||||
|
||||
childRecyclerView.adapter =
|
||||
GenericItemAdapter(items, itemBindingInflater, itemBindCallback)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user