需要在android中动态创建视图的建议吗

需要在android中动态创建视图的建议吗,android,android-listview,android-view,Android,Android Listview,Android View,我将启动一个应用程序,其中我的活动页面将包含“n”个分组视图。分组视图是指“视图集合(即一个组可以有文本视图+按钮+图像视图)”。因此,页面将有“n”个这样的分组视图 我需要一些建议,比如什么是实现这一点的最佳实践。我可以想到以下几点: 1) 是否应该使用ScrollView(那么我必须在运行时创建组,并将一个组置于另一个组之下) 2) 或者使用列表视图(那么,由于分组视图的高度可能不同,我如何适应每行的高度?) 或者我还有别的办法可以接受吗 感谢您的建议和任何示例(如果有的话)。提前谢谢 这两

我将启动一个应用程序,其中我的活动页面将包含“n”个分组视图。分组视图是指“视图集合(即一个组可以有文本视图+按钮+图像视图)”。因此,页面将有“n”个这样的分组视图

我需要一些建议,比如什么是实现这一点的最佳实践。我可以想到以下几点:

1) 是否应该使用ScrollView(那么我必须在运行时创建组,并将一个组置于另一个组之下)

2) 或者使用列表视图(那么,由于分组视图的高度可能不同,我如何适应每行的高度?)

或者我还有别的办法可以接受吗


感谢您的建议和任何示例(如果有的话)。提前谢谢

这两个选项都可以,这取决于您的用例

  • 将垂直线性布局放置在滚动视图内,并将分组视图添加到线性布局中。如果这样的视图数量相对较少(不一定是固定数量,但足够小,不必滚动很多“页面”就能看到所有视图),我建议您这样做。确保ScrollView具有android:layout\u height=“match\u parent”且LinearLayout具有android:layout\u height=“wrap\u content”
  • 如果分组视图的数量不小,可以使用ListView并为其制作适配器。这使您可以在项目滚动到屏幕外时利用ListView的自动视图循环

对于这两种情况,只为分组视图创建一个XML文件。在代码中,您将获得一个LayoutInflater对象(通常通过调用
Activity.getLayoutInflater()
)并调用
充气(R.layout.your\u grouped\u views,null)
。如果使用LinearLayout,您可以使用
LinearLayout.addView(…)
方法之一将其添加到代码中;如果使用ListView,适配器将从
getView(…)
返回整个内容,这两个选项都可以工作,这取决于您的用例

  • 将垂直线性布局放置在滚动视图内,并将分组视图添加到线性布局中。如果这样的视图数量相对较少(不一定是固定数量,但足够小,不必滚动很多“页面”就能看到所有视图),我建议您这样做。确保ScrollView具有android:layout\u height=“match\u parent”且LinearLayout具有android:layout\u height=“wrap\u content”
  • 如果分组视图的数量不小,可以使用ListView并为其制作适配器。这使您可以在项目滚动到屏幕外时利用ListView的自动视图循环

对于这两种情况,只为分组视图创建一个XML文件。在代码中,您将获得一个LayoutInflater对象(通常通过调用
Activity.getLayoutInflater()
)并调用
充气(R.layout.your\u grouped\u views,null)
。如果使用LinearLayout,您可以使用
LinearLayout.addView(…)
方法之一将其添加到代码中;如果使用ListView,您的适配器将从
getView(…)

返回整个内容。对于您的答案,我想给您一些参考,在此网站上,您可以学习在android中创建动态视图

关于你的答案,我想给你一些参考,在这个网站上,你可以学习在android中创建动态视图

  • 创建一个包含组视图常量元素的xml布局

  • 在应用程序的
    contentView
    主xml布局中,放置一个滚动视图和一个线性布局

  • 然后在程序
    中,根据需要对组视图的视图进行充气

  • 创建一个包含组视图常量元素的xml布局

  • 在应用程序的
    contentView
    主xml布局中,放置一个滚动视图和一个线性布局

  • 然后在程序
    中,根据需要对组视图的视图进行充气


  • 这里不是一个可以让你的网站商业化的地方。如果你真的相信链接会有帮助,那么请给出确切的线程链接,而不是网站链接。@Savan,这是一个很好的链接。但不管你想给我什么样的解决方案,那又在哪里呢?在这方面我找不到任何帮助。这里不是你可以让你的网站商业化的地方。如果你真的相信链接会有帮助,那么请给出确切的线程链接,而不是网站链接。@Savan,这是一个很好的链接。但不管你想给我什么样的解决方案,那又在哪里呢?关于这一点,我找不到任何帮助。我接受这个答案,因为我觉得这似乎更平易近人。我接受这个答案,因为我觉得这似乎更平易近人。