2015-04-02 46 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