【问题标题】:Cannot add several chips into ChipGroup无法将多个芯片添加到 ChipGroup
【发布时间】:2019-11-29 13:16:00
【问题描述】:

我正在尝试将芯片添加到 ChipGroup(不是 singleLine):

val chip = Chip(this)
    chip.isCloseIconVisible = true
    for (i in 0..10) {
        chip.setText("Some text $i")
        chip_group.addView(chip as View)
    }

但我得到一个例外:

The specified child already has a parent. You must call removeView() on the child's parent first.

如何将芯片标记为独特的孩子?或者我该怎么办?

【问题讨论】:

    标签: android material-design


    【解决方案1】:

    你需要在for循环中声明芯片

    for (i in 0..10) {
        val chip = Chip(this)
        chip.isCloseIconVisible = true
        chip.setText("Some text $i")
        chip_group.addView(chip as View)
    }
    

    由于您将其声明为 val(这意味着未更改它是值),因此您会遇到相同的子错误。

    【讨论】:

      【解决方案2】:

      您不能将同一个视图多次添加到父视图。

      参考这个: https://stackoverflow.com/a/24032857

      它会抛出上述异常。

      您正尝试多次将同一个 Chip 添加到父级。

      尝试修改后的代码,例如,

          for (i in 0..10) {
              val chip = Chip(this)
              chip.isCloseIconVisible = true
              chip.setText("Some text $i")
              chip_group.addView(chip as View)
          }
      

      【讨论】:

      • 你是对的。但为什么?我在循环中使用相同的上下文
      猜你喜欢
      • 2020-03-04
      • 2020-12-03
      • 2020-09-02
      • 2018-12-18
      • 2021-11-08
      • 2020-02-02
      • 2022-07-06
      • 1970-01-01
      • 2020-04-30
      相关资源
      最近更新 更多