RecyclerView内部的LinearLayout重力

时间:2016-08-02 20:59:34

标签: android xml android-layout android-recyclerview android-linearlayout

嘿,我正在制作一个简单的聊天应用程序。我将这两个布局传递给inflater以添加到RecyclerView:

received_msg.xml

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

<TextView
    android:text="Hello"
    android:textColor="#fff"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" />

</LinearLayout>

sent_msg.xml

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

<TextView
    android:text="Text"
    android:textColor="#f00"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" />

</LinearLayout>

RecyclerView:

<android.support.v7.widget.RecyclerView
    android:padding="10dp"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:scrollbarStyle="outsideOverlay"
    android:scrollbars="vertical" />

layout_gravity 属性似乎对 sent_msg.xml 的LinearLayout没有影响。怎么办?

1 个答案:

答案 0 :(得分:1)

您可以制作两个项目的XML全宽(match_parent)并将layout_gravitybackground属性移动到子TextView:

<强> sent_msg.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"                  (* Changed)
    android:layout_height="wrap_content">

<TextView
    android:text="Text"
    android:background="#fff"                            (* Changed)
    android:textColor="#f00"
    android:layout_gravity="right"                       (* Changed)
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" />

</LinearLayout>