Элементы Listview, распространяющиеся до полной ширины экрана

Я использую listview для обмена сообщениями между двумя пользователями. Я хочу установить цвет фона сообщений чата, отправленных получателем, как синий и какой-то другой цвет для отправителя. Я также хочу ограничить размер элемента listviewwrap_content, но он, похоже, не работает, поэтому цвет фона распространяется по всей ширине элемента.Сообщение, отправленное получателем

Ниже приведен код действия, которое содержит listview:

<FrameLayout 

android_layout_width="match_parent"
android_layout_height="match_parent"
android_background="@drawable/bg"
tools_context=".ChatScreen">

<include layout="@layout/toolbar" />

<FrameLayout
    android_layout_width="match_parent"
    android_layout_height="match_parent"
    android_layout_marginTop="?attr/actionBarSize">

    <io.codetail.widget.RevealFrameLayout
        android_layout_width="match_parent"
        android_layout_height="wrap_content">

        <RelativeLayout
            android_layout_width="wrap_content"
            android_layout_height="wrap_content"
            android_orientation="vertical">

            <ListView
                android_layout_width="match_parent"
                android_layout_height="wrap_content"
                android_id="@+id/lMsgs"
                android_layout_alignParentTop="true"
                android_layout_alignParentLeft="true"
                android_layout_alignParentStart="true"
                android_layout_above="@+id/editText"
                android_divider="@null"/>

            <EditText
                android_text=""
                android_layout_width="wrap_content"
                android_id="@+id/editText"
                android_layout_height="wrap_content"
                android_layout_alignParentBottom="true"
                android_layout_alignParentLeft="true"
                android_layout_alignParentStart="true"
                android_layout_toLeftOf="@+id/bSendMsg" />

            <ImageButton
                android_layout_width="wrap_content"
                android_layout_height="wrap_content"
                android_src="@drawable/sendd"
                android_id="@+id/bSendMsg"
                android_layout_below="@+id/lMsgs"
                android_layout_alignParentRight="true"
                android_layout_alignParentEnd="false"
                android_layout_alignParentBottom="true"/>

        </RelativeLayout>

        <include layout="@layout/media_attach_menu" />

    </io.codetail.widget.RevealFrameLayout>

</FrameLayout>

Код элемента listview:

<?xml version="1.0" encoding="utf-8"?>
<!--  Single List Item Design -->
<RelativeLayout android_layout_height="wrap_content" android_layout_width="wrap_content"
 android_layout_gravity="left"
android_id="@+id/RelativeLayout">

<TextView
    android_layout_width="wrap_content"
    android_layout_height="wrap_content"
    android_layout_marginLeft="10dp"
    android_layout_marginRight="10dp"
    android_textSize="16sp"
    android_text="Username"
    android_id="@+id/tvUsername"
    android_layout_alignParentTop="true"
    />

<RelativeLayout
    android_layout_width="wrap_content"
    android_layout_height="wrap_content"
    android_layout_below="@id/tvUsername"
    android_id="@+id/innerRL">

    <TextView 
        android_id="@+id/tvMessage"
        android_layout_width="wrap_content"
        android_layout_height="wrap_content"
        android_layout_marginLeft="10dp"
        android_layout_marginRight="10dp"
        android_layout_marginTop="5dp"
        android_layout_marginBottom="5dp"
        android_textSize="18sp"
        android_textStyle="bold"
        android_layout_alignParentTop="false"
        android_text="Message"
        />

    <ImageView 
        android_id="@+id/imageView"
        android_layout_width="wrap_content"
        android_layout_height="wrap_content"
        android_padding="10dip"
        android_textSize="16sp"
        android_textStyle="bold"
        android_visibility="gone"
        android_contentDescription="@string/image"
        android_scaleType="fitCenter"
        android_maxHeight="50dp"
        android_maxWidth="50dp"
        android_minHeight="50dp"
        android_minWidth="50dp"
        />
</RelativeLayout>

<TextView
    android_layout_width="wrap_content"
    android_layout_height="wrap_content"
    android_layout_marginLeft="10dp"
    android_layout_marginRight="10dp"
    android_textSize="14sp"
    android_text="Timestamp"
    android_id="@+id/tvTime"
    android_layout_below="@id/innerRL"
    />

</RelativeLayout>

1 ответ

  1. Вы установили android:background="@drawable/bg"в parentlayout означаетFrameLayout, поэтому он применяется к вашему все представление не одна строка удалить оттуда, и вы можете применить этот фон к макету элемента listview

    <?xml version="1.0" encoding="utf-8"?>
    <!--  Single List Item Design -->
    <RelativeLayout 
      
       android_layout_height="wrap_content" 
       android_layout_width="wrap_content"
       android_layout_gravity="left"
       android_background="@drawable/yourbackground"
       android_id="@+id/RelativeLayout">
    
    <TextView
        android_layout_width="wrap_content"
        android_layout_height="wrap_content"
        android_layout_marginLeft="10dp"
        android_layout_marginRight="10dp"
        android_textSize="16sp"
        android_text="Username"
        android_id="@+id/tvUsername"
        android_layout_alignParentTop="true"
        />
      ----