2012-10-30 140 views
1

我有我動態增加項目的列表視圖。我希望某些項目(我選擇的)應該左對齊,右對齊一些。 Android的ListView可以實現這個功能嗎?Android的列表查看項目對齊

//適配器

if (convertView == null) { 
       holder = new EventViewHolder(); 
       if (type == 1) { 
        convertView = inflater.inflate(
          R.layout.multi_line_list_item, null); 
        holder.mtvMessage = (TextView) convertView 
        .findViewById(R.id.tvMessage); 
        holder.mtvMessage.setGravity(Gravity.LEFT); 
        holder.mtvMessage.setBackgroundResource(R.drawable.chatbluebox); 
        convertView.setTag(holder); 
       }else{ 
        convertView = inflater.inflate(
          R.layout.multi_line_list_item, null); 
        holder.mtvMessage = (TextView) convertView 
        .findViewById(R.id.tvMessage); 
        holder.mtvMessage.setGravity(Gravity.RIGHT); 
        holder.mtvMessage.setBackgroundResource(R.drawable.chatgreenbox); 
        convertView.setTag(holder); 

      } 

請讓我知道,如果是可以做到的,並提出了我一個很好的解決方案嗎?

回答

1

使用後。

adapter.notifyDataSetChanged(); 

然後

listView.setSelection(items.size()-1); 

重力您需要在您的getview()方法動態設置重力。

例如: -

textview1.setGravity(Gravity.RIGHT); 
+0

我無法設置重力親愛的。我編輯了我的代碼,向您展示重力問題。請看一看。 –

+0

我想表明的項目爲極左和極右... –

+0

holder.mtvMessage.setGravity(Gravity.LEFT);和任何一個不工作?或者兩者都沒有效果? –

2

看一看ListView的模式stackFromBottomtranscriptMode那些可以完成大部分的工作適合你。

要對齊左細胞,就可以了,例如設置重力左右在你的適配器getView法權的項目。

+0

好吧,讓我檢查重力問題。會讓你知道,如果它完成 –

+0

我無法設置重力親愛的。我編輯了我的代碼,向您展示重力問題。請看一看。 –

+0

我想顯示項目到極左和極右... –

5
android:stackFromBottom="true" 
android:transcriptMode="alwaysScroll" 

在你的ListView XML條目添加這些行..,。

而對於左,右對齊方式,保持兩個佈局XMLS一個正確的getView對齊和其他左對齊(無論看你想),然後()listAdapter的方法設置一些條件,只要你想誇大這些XML

if (convertView == null) 
    if(some condition) 
     convertView = mInflater.inflate(R.layout.rightxml, null); 
    else 
     convertView = mInflater.inflate(R.layout.leftxml, null); 
    ....