您是否需要自定义适配器才能将不同的视图子项添加到ListView

时间:2012-12-07 13:24:18

标签: java android xml listview adapter

我想创建一个具有交替行布局的ListView。

Row 1 - Layout A
Row 2 - Layout B
Row 3 - Layout A etc.

是否有必要为此创建自定义适配器,或者默认情况下是否可以?

3 个答案:

答案 0 :(得分:2)

如果没有适配器,请不要这样做,但请查看BaseAdapter课程的getViewTypeCount()getItemViewType(postion),因为他们会为您提供支持。

首先让您的适配器知道您的行有多少不同的类型;在你的情况下,它们是2(布局A和布局B)。

第二种方法返回给定位置的类型。在你的情况下,它可能像下面的代码一样简单。

@Override
public int getItemViewType(int postion){
    return (postion % 2);

有关详细信息,请参阅:http://android.amberfog.com/?p=296

答案 1 :(得分:1)

如果列表中没有那么多项目,则根本不需要使用ListView或适配器。

对于类似的结果,您可以在LinearLayout内使用ScrollView

这样,您可以根据列表中的位置,使用相关样式在创建活动时将项目添加到LinearLayout

如果你的列表中有很多(我知道很模糊)的项目,那么使用ListView

的内存效率要高得多

我个人使用这种方法如果a)没有那么多的项目和b)你没有在运行时插入/删除列表中的项目(除了初始构建),否则你将有通过调整其风格的每个项目。

答案 2 :(得分:0)

您必须使用默认适配器开发自己的布局和适配器,不能选择要放置的布局。