芯片组中的多排芯片

饼干

我要从我的API中获取一个列表,该列表包含25个国家/地区的标签,例如德国,英国,法国,意大利等...我想要2行,chips每行10个,如果我得到30个标签,下次获取时,我想有3行,每行10条,chips等等...

到目前为止,我还没有发现任何允许我做的事情。我快速浏览了一下,Flexbox-Layout但它似乎不符合我的需求,我现在有下面的代码,但是我正在考虑使用Recyclerview

分段

viewModel.videoSelected.observe(viewLifecycleOwner, object : Observer<VideoPage> {
            override fun onChanged(videoPage: VideoPage?) {
                videoPage?.tags ?: return
                val chipGroup = binding.chipGroup
                val chipGroupInflater = LayoutInflater.from(chipGroup.context)
                val children = videoPage.tags.map { tagName ->
                    val chip = chipGroupInflater.inflate(R.layout.chip_video_tag, chipGroup, false) as Chip
                    chip.text = tagName
                    chip.tag = tagName
                    chip.setOnClickListener {
                        Toast.makeText(context, tagName, Toast.LENGTH_SHORT).show()
                    }

                    chip
                }

                for (chip in children) {
                    chipGroup.addView(chip)
                }
            }
        })

结果是一行中有25个筹码。我如何才能将其分割成多行?

饼干

我也设法用一种更简单的方式做到这一点BindingAdapter

 <androidx.recyclerview.widget.RecyclerView
                    app:listVideoTagChip="@{viewModel.videoSelected.tags}"
                    android:id="@+id/rv_video_chips"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    app:layoutManager="androidx.recyclerview.widget.StaggeredGridLayoutManager"
                    android:orientation="horizontal"
                    tools:listitem="@layout/chip_video_tag"/>
private const val TAG_PER_ROW = 10

@BindingAdapter("listVideoTagChip")
fun RecyclerView.bindRecyclerView(data: List<String>?) {
    val adapter: VideoTagAdapter = this.adapter as VideoTagAdapter
    (layoutManager as StaggeredGridLayoutManager).spanCount =
        data?.size?.let {
            ceil(it.toDouble().div(TAG_PER_ROW)).toInt()
        } ?: 1
    adapter.submitList(data)
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

多个蓝牙芯片组?

来自分类Dev

无线卡芯片组

来自分类Dev

Nouveau“未知芯片组”在安装程序中

来自分类Dev

Nouveau“未知芯片组”在安装程序中

来自分类Dev

避免芯片组受到检查

来自分类Dev

芯片组和主板之间的区别

来自分类Dev

Nouveau安装时未知的芯片组

来自分类Dev

Broadcom芯片组TX电源

来自分类Dev

未知的芯片组和KVM:被BIOS禁用

来自分类Dev

CPU和芯片组有什么区别?

来自分类Dev

支持Android 5 BLE外设模式的芯片组/设备

来自分类Dev

英特尔芯片组-GPIO编程

来自分类Dev

未知的芯片组和KVM:被BIOS禁用

来自分类Dev

3592 Ralink无线芯片组的Ubuntu 12.04问题

来自分类Dev

如何使用Nvidia芯片组配置LVDS + DisplayPort + DisplayPort?

来自分类Dev

在nic driver之前安装芯片组驱动程序?

来自分类Dev

芯片组是否定义为总线?

来自分类Dev

了解芯片组PCI-Express通道

来自分类Dev

北桥芯片组有哪些优势

来自分类Dev

我的芯片组的兼容性是否存在问题?

来自分类Dev

如何找出路由器的芯片组?

来自分类Dev

是否制造了用作站与AP的不同WiFi芯片组?

来自分类Dev

Android 芯片自定义高度或填充 - 芯片组间距

来自分类Dev

片段重新创建时芯片组侦听器更改芯片位置

来自分类Dev

Win7 PC在更新过程中关闭-驱动程序/芯片组有问题吗?

来自分类Dev

使Ubuntu与eSATA(Intel H57芯片组)一起使用

来自分类Dev

Flutter-如何用一个按钮水平包装芯片组列表

来自分类Dev

在英特尔的Z87芯片组上构建降级的RAID 1?

来自分类Dev

主板说PCIe 3.0,但是芯片组仅支持PCIe 2.0。谁是对的?