使ListView的单元格包装内容

时间:2014-06-08 15:50:57

标签: android listview layout

我正在制作聊天应用程序,但我遇到了一些问题。

enter image description here

这是我的聊天活动的样子,以下是代码:

chat.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
  android:orientation="vertical"
  android:layout_width="match_parent"
  android:layout_height="match_parent">

    <ListView
      android:id="@+id/lvMessageHistory"
      android:layout_width="match_parent" 
      android:layout_height="0px"
      android:layout_weight="1"/>

    <LinearLayout 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" >

      <EditText
        android:id="@+id/etMessage"
        android:inputType="text"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="top"
        android:layout_weight="1"/>

      <Button 
          android:id="@+id/btnSend"
          android:layout_width="match_parent"
          android:layout_height="wrap_content"
          android:layout_weight="4"
          android:text="@string/send"/>

    </LinearLayout>

</LinearLayout>

chat_cell.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:id="@+id/chatMessageLayout"
  android:orientation="vertical"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:layout_gravity="right">

   <TextView
       android:id="@+id/tvUser"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:text="@string/send"
       android:textStyle="bold"/>

   <LinearLayout
       android:layout_width="wrap_content"
       android:layout_height="wrap_content">

       <TextView
           android:id="@+id/tvMessage"
           android:layout_width="wrap_content"
           android:layout_height="wrap_content"/>

       <TextView
           android:id="@+id/tvTime"
           android:layout_width="wrap_content"
           android:layout_height="wrap_content"/>

   </LinearLayout>     
</LinearLayout>

现在我想要的是气泡更小,即只是将文字包裹在其中,同时具有全宽度以基于发送者将其重力设置为左或右。

我做错了什么?

编辑:我正在以编程方式在chatMessageLayout上设置背景。

LinearLayout chatMessageLayout = (LinearLayout) convertView.findViewById(R.id.chatMessageLayout);    
if (position % 2 == 0) {
   chatMessageLayout.setBackgroundResource(R.drawable.bubble_right);
} else {
   chatMessageLayout.setBackgroundResource(R.drawable.bubble_left);
}

我正在使用9补丁图片。

0 个答案:

没有答案