如何在android的getview()方法中多次动态创建xml布局?
我已经创建了如何在android的getview()方法中多次动态创建xml布局?,android,android-view,android-xml,layout-xml,Android,Android View,Android Xml,Layout Xml,我已经创建了xml布局文件,其中包含视图类注释框。我想在getView()方法中多次动态创建布局(注释框)。如何在getView()方法中动态创建它 在getview()方法中,我多次使用代码动态生成特定的View,但它不起作用。请给我提个建议 我的适配器代码链接如下: 我认为有三种方法适合您。正如评论中所讨论的,您的问题的标题具有误导性,因此我假设: 您有一个要显示的卡片列表 每张卡片可能有一个评论列表 因此,潜在的问题是,您有一个二维数据结构,您希望使用一维UI组件来显示它,在您的示例中
xml布局
文件,其中包含视图
类注释框。我想在getView()方法中多次动态创建布局(注释框)。如何在getView()方法中动态创建它
在getview()
方法中,我多次使用代码动态生成特定的View
,但它不起作用。请给我提个建议
我的适配器代码链接如下:
我认为有三种方法适合您。正如评论中所讨论的,您的问题的标题具有误导性,因此我假设:
- 您有一个要显示的卡片列表
- 每张卡片可能有一个评论列表
因此,潜在的问题是,您有一个二维数据结构,您希望使用一维UI组件来显示它,在您的示例中是一个ListView
您可以通过以下方式解决问题:
使用ExpandableListView,其中卡片是父元素,注释是子元素。有关示例,请参见[1]
扁平化您的数据层次结构。因此,您只有一个项目列表,其中卡片在某种程度上被视为您评论的“标题”或“分隔符”。您需要覆盖[2],在这种情况下,适配器能够返回两个不同的视图。在getView()
方法中,您需要执行以下操作:
if(列表获取(位置)卡实例)
返回getCardView(…);
else if(list.get(position)instanceOf Comment)
返回getCommentView(…)代码>
将注释动态呈现到卡视图中的容器中。因此,在卡片视图的布局文件中,使用视图组,例如LinearLayout,并为其指定一个唯一的id,如“llComments”。为您的评论创建一个单独的布局文件。然后在您当前的代码中,您可以膨胀这个文件,只需将返回的视图添加到容器中(llComments)。我认为这就是你正在寻找的解决方案。因此,在代码中,执行以下操作:
View commentConvertView=充气机。充气(R.layout.list\u item\u comment,…);
ViewGroup comments=(ViewGroup)convertView.findViewById(R.id.llComments);
comments.removeAllView;
for(list.get(position.getComments()){
//将数据绑定到commentConvertView
添加(commentConvertView);
}
[1]
[2] 无法从代码创建xml布局。。。但是您可以从代码创建视图。。。无论如何,问题是在xml文件中是否有一个类似于注释框的布局。我想动态多次创建此注释框。真正的程序员不使用术语:它不工作
…您是指适配器的getView()还是片段的getView()?真正的程序员互相帮助,而不是做出不必要的注释。感谢您给出答案。你能有任何代码链接或演示吗??我真的想尝试这种方法…有很多教程演示了适配器的正确使用。如果你可以进一步强调一下你想要实现的目标,我可以用一个例子来扩展我的答案。另外,这个博客展示了一个简单的例子,你能详细说明一下吗?如果你了解我的编码和我想做什么?