我目前正在编写一个 android 应用程序,我希望它编写/设计得很好。
现在,我在一个我经常使用的相对布局中有一组多重视图(2 个图像视图,3 个文本视图)。有没有办法创建一个自定义视图来重新组合它们?
我截取了这张截图来解释我现在所做的事情:
如您所见,现在我刚刚复制/粘贴了包含我所有视图的框架布局...这是正确的方法还是有更清洁的解决方案?
多谢你们
没有更好的方法是将您放入布局中的所有内容放入ArrayList
对象中。然后创建一个以您想要的方式从该对象ArrayAdapter
中填充一个。ListView
这种技术的优点是您获得了一种视图回收机制,该机制将回收Views
您的内部ListView
以减少内存消耗。
简而言之,您必须:
1.创建一个代表单行数据的对象。
2.创建ArrayList
这些对象中的一个。
3.创建一个包含 ListView 的布局或使用代码将 ListView 添加到您的主布局。
4.创建单行布局(您已经拥有它)。
5.创建一个ViewHolder
从 的角度代表数据行的视觉方面Views
。
6.创建一个自定义ArrayAdapter
,将根据您的需要填充行。
7.最后把这个分配ArrayAdapter
给你的ListView
in onCreate
。
您可以通过阅读我写的这篇博客文章来了解如何实现这一点:
如果您在代码中而不是界面构建器中执行此操作,您可以每次使用LayoutInflator从您的 xml 创建一个视图,然后将这些视图作为子视图添加到您的 LinearLayout。这也将允许您更改数字,而无需复制粘贴每个新视图。
LayoutInflater layoutInflator = (LayoutInflater) getApplicationContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
LinearLayout ll = (LinearLayout) findViewById(R.id.yourLayout);
for(int i=0; i<numOfSubViews; i++){
View view = layoutInflator.inflate(R.layout.yourFrameLayout, null);
ll.add(view);
}