如何创建这样的自定义ListView?

时间:2013-02-12 11:22:40

标签: android android-listview customization

我想创建一个自定义列表视图,如下图所示。我正在创建一个聊天应用程序,该应用程序必须传递文本,图像和视频等。见下图。

enter image description here

其中,当用户在聊天中发送/接收图像时,如果他想通过点击该图像旁边的按钮看到该图像,如何使用该图像路径(或)网址移动到另一个活动,以显示完整图像,当图像上的用户clickngi必须显示快速视图时。同样的方式,如果那是视频,我必须得到该路径(或)网址正确播放视频。 如何区分列表项取决于项类型。

2 个答案:

答案 0 :(得分:1)

你可以

  • 实施ScrollView并在其中添加视图。
  • 创建包含所有可能视图的适配器,然后决定隐藏或显示哪个视图
  • 您可以创建适配器并动态地将视图添加到每一行(在这种情况下,它太慢了)。

我的选择是#2 - 创建包含所有可能视图的行视图,然后决定隐藏什么,在这种情况下,您可以节省时间,因为您不必每次都夸大您的视图,甚至可以使用ViewHolder模式。

答案 1 :(得分:1)

如果要为音频,图片和短信显示不同的行,则需要有3行布局,然后您将决定需要从getView()的{​​{1}}中返回哪一行。适用于getViewTypeCount() and getItemViewType()的适配器有两种方法可以帮助您回收行,以显示在CustomAdapter中。

您将首先告诉ListView中有多少布局使用ListView告诉适配器将有多少行类型,然后检查该位置的数据类型您的数据模型并从getViewTypeCount()返回视图类型,因此getItemViewType()将收到相关的回收视图(如果有)。

Here is my blog post关于使用9个补丁图像,它展示了发送者和接收者类型的视图,同样可以根据数据模型中特定位置的项目应用于图像和音频。