2015-04-02 69 views
0

在我的聊天应用程序中,我有复合类型的消息。它只能是文字,可以是文字,图像和视频的混合体。什么是使用android布局在ListView中显示这样的组合项目的最佳方式。 目前我编程绘制这些消息。但是,当涉及到不同的屏幕调整时,这会造成很多问题。 理想情况下,我希望每个(文本,图像,视频)都有xml布局,然后根据类型将它们添加到适配器中。Android中的复合列表项目

样品消息:

text 
image 
image 

image 
video 
image 
text 

text 
image 
text 
image 

回答

1

你是对的。您必须为内容创建不同的布局。在您的适配器中,您必须根据要绘制的视图来夸大这些布局。

例如, Adapter.java

@Override 
public View getView(int position, View convertView, ViewGroup parent) { 
    View view = convertView; 
    if (convertView == null) { 
     if(position % 2== 0) { // your condition 
      view = inflater.inflate(R.layout.list_row_text_msg, null); 
     } else { 
      view = inflater.inflate(R.layout.list_row_image_msg, null); 
     } 
    } 

    ... 
} 

你已经准备好了。

+0

我可以使用layoutInflater动态编写我的行项目吗?因此,我不会准备消息布局的所有变体(image_text_image布局,text_image布局),而只需使用其自己的布局(文本布局,图像布局等)插入适当的元素。 – 2015-04-02 07:03:32

+0

您可以动态使用布局充气器。我不明白你评论的最后部分。 – Paritosh 2015-04-02 07:11:49

+0

我的意思是:我将有空的列表项目布局,我将根据内容类型(文本,图像,视频)与其他小布局一起运行。所以我不需要准备布局的所有变化,但是在运行时构建布局。 – 2015-04-02 07:13:22