gpt4 book ai didi

android - 如何通过仅膨胀一次将相同的 View 多次添加到父级

转载 作者:IT老高 更新时间:2023-10-28 21:43:47 27 4
gpt4 key购买 nike

我有一个垂直方向的 LinearLayout 作为父级,我想以编程方式多次向该父级添加一些 View 。现在,每次在添加到父级之前,每次获取对每个 UI 元素的新引用时,我都会给子级充气。这似乎不是很有效,有没有更好的方法来做到这一点。

我正在使用的当前代码如下,如果我在 for 循环之前只充气一次,我会收到运行时错误“他指定的 child 已经有一个 parent 。您必须先在 child 的 parent 上调用 removeView()。”

        LayoutInflater inflator = LayoutInflater.from(getBaseContext());
LinearLayout parentPanel = findViewById(R.id.parent_pannel);

ArrayList<String> myList = getData();
for(String data : myList) {
// inflate child
View item = inflator.inflate(R.layout.list_item, null);
// initialize review UI
TextView dataText = (TextView) item.findViewById(R.id.data);
// set data
dataText.setText(data);
// add child
parentPanel.addView(item);
}

最佳答案

您是否真的检查过 inflate 是否缓慢?据我所知,膨胀 View 非常快(几乎与手动创建 View 一样快)。

您可能会感到惊讶,但实际上 inflate 根本不解析 XML。用于布局的 XML 在编译时被解析和预处理 - 它们以二进制形式存储,这使得 View 膨胀非常有效(这就是为什么你不能从运行时生成的 XML 中膨胀 View )。

关于android - 如何通过仅膨胀一次将相同的 View 多次添加到父级,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6441594/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com