我们是否可以在垂直回收站视图中拥有水平回收站视图?

问题描述 投票:0回答:1

垂直的recyclerviewrecyclerview显示布局中的所有交易

但是我想实现的是:

  • 在前10笔交易之后,我想显示(推荐的5笔交易的(水平recyclerview)] >>
  • 在接下来的10笔交易之后,我想显示(推荐的5笔交易的(水平recyclerview)] >>
  • 在接下来的10笔交易之后,我想显示(推荐的5笔交易的(水平recyclerview),依此类推……
  • 我已附上我希望设计外观的图像。

我不知道如何执行此操作。但是我两个recyclerview分开工作。只是不确定如何组合它们。我什至不确定要在adaptersmainactivity中编写代码。我已附加了水平recyclerview适配器和垂直recyclerview适配器的图像。请通过向我展示如何实现此功能来帮助我。谢谢

How i want my design to look like

Image of horizontal recyclerview adapter

1st Image of vertical recyclerview adapter

2nd Image of vertical recyclerview adapter

3rd Image of vertical recyclerview adapter

主recyclerview是垂直recyclerview,它显示了布局中的所有交易,但是我想要实现的是:在前十笔交易之后,我想显示一个(水平recyclerview)...

android android-recyclerview recycler-adapter
1个回答
0
投票
class MyAdapter(val list: List<String?>): RecyclerView.Adapter<RecyclerView.ViewHolder>() {

private val TYPE_ITEM = 0
private val TYPE_HORIZONTAL_ITEM = 1

override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RecyclerView.ViewHolder {
    return if(viewType == TYPE_ITEM) {
        ViewHolder(LayoutInflater.from(parent.context).inflate(R.layout.item_layout, parent, false))
    }else HorizontalViewHolder(LayoutInflater.from(parent.context).inflate(R.layout.horizontal_layout, parent, false))
}

override fun getItemCount(): Int {
    return list.size
}

override fun getItemViewType(position: Int): Int {
    return if(list[position]!=null) TYPE_ITEM else TYPE_HORIZONTAL_ITEM
}

override fun onBindViewHolder(holder: RecyclerView.ViewHolder, position: Int) {

    if(holder is ViewHolder){
        holder.bind(list[position]?:"")
        // manage your items
    }else if(holder is HorizontalViewHolder)
        holder.bind()
        // manage your horizontal recyclerView
}

class ViewHolder(itemView: View): RecyclerView.ViewHolder(itemView) {

    fun bind(item: String){

    }
}

class HorizontalViewHolder(itemView: View): RecyclerView.ViewHolder(itemView){

    fun bind(){

    }
}

您必须创建适用于不同viewType的适配器。作为示例,我列出了字符串,每个第10个元素都为null,这表明它是水平的recyclerView。我相信,在您的情况下,它应该不是处理null的模型,而是用于处理水平recyclerView的模型。例如,清单20的大小应为22,因为有两个水平的recyclerViews。

© www.soinside.com 2019 - 2024. All rights reserved.