Android LinearLayout 宽度

Android LinearLayout width

我有 speechbubbles,其中有两个 TextView。第一个 Textview 是消息,第二个是发送消息的时间。

第二个文本视图的布局宽度基于消息的宽度,以便将时间向左或向右对齐。如果短消息用户看不到时间完成。

这是正确的(如果消息不短):

Hello!
 00:00

这是短消息:

Hel
 00

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

    <LinearLayout
        android:id="@+id/container"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:layout_margin="5dip"
        android:paddingTop="8dp"
        android:paddingBottom="11dp"
        android:paddingLeft="9dp"
        android:background="@drawable/speechbubble" >

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

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

            <TextView
                android:id="@+id/singleMessageTime"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:layout_below="@id/message" />
        </LinearLayout>

    </LinearLayout>

</LinearLayout>

怎么了?

我不确定你为什么需要 3 个嵌套线性布局,我认为这应该可以完成你想要做的事情。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
     android:id="@+id/gravity"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:gravity="end"
     android:orientation="vertical"
     android:layout_margin="5dip"
     android:paddingTop="8dp"
     android:paddingBottom="11dp"
     android:paddingLeft="9dp"
     android:background="@drawable/speechbubble">

     <TextView
         android:id="@+id/message"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:text="Hello!" />

     <TextView
         android:id="@+id/singleMessageTime"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:text="00:00" />
</LinearLayout>

只需将 minwidth 或 minEMS 设置为控制整个布局大小的 textview

 android:minWidth="40dp"
    

    android:minEms="3"