【问题标题】:Creating large amount of Views in Code在代码中创建大量视图
【发布时间】:2017-12-10 20:28:36
【问题描述】:

我正在尝试创建一个自定义视图,其中包含基于我的数据库的CheckBoxes 列表。这意味着我必须在运行时创建视图,而不能在 XML 中创建。但是,我为此使用的方法非常慢。有没有更快的方法在代码中创建大量视图?

例如,对于我的数据库中的 18 种类型,创建所有 CheckBoxes 可能需要 1 秒以上。

class FilterView : LinearLayout {

private fun init(types : List<Type>){

    ... setup

    // Creating the CheckBoxes, this takes all the time. 
    checkboxes = Array(types.size, {

        AppCompatCheckBox(context).apply {
            text = types[it].type
            CompoundButtonCompat.setButtonTintList(this, ColorStateList(states, intArrayOf(colours[it], colours[it])))
        }
    })

   ... add to view
}

【问题讨论】:

  • 有人能解释一下否决票吗?

标签: android performance android-layout


【解决方案1】:

您正在寻找的是 Recyclerview。都可以解释here。反对票很可能是因为这被认为是常识或您自己很容易在谷歌上搜索到。我也曾经是新人。给你。

【讨论】:

  • 很抱歉,您的回答非常粗鲁。忽略一个事实,简单地看一下我的个人资料就会表明我知道RecyclerView,你没有以有用的方式回答这个问题。简单地链接到文档并不是很有用。另一方面,我为此考虑了RecylerView,但我正在寻找一种不同的解决方案,它可以让我更好地访问视图。
  • 没有人粗鲁。你自己问为什么投票失败,我告诉你最可能的原因。提供的链接解释了 Recyclerview 为何高效及其为您提供信息的好处,从而使您能够继续前进并就如何处理此问题做出明智的决定。如果您看到答案的最后一部分说“我也曾经是新人”,这意味着我对您的反对意见表示同情。
猜你喜欢
  • 2016-01-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多