Android 中的复合列表项

Composite list item in Android

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

消息示例:

text
image
image

image
video 
image
text

text
image
text
image

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

例如。 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);
        }
    }

    ...
}

你准备好了。