适合2 TextViews

时间:2016-12-08 09:05:15

标签: android android-layout

我需要在一行中放入2个TextView。我尝试使用LinearLayout,现在我最好的方法是使用RelativeLayout。 在这里你可以看到它的XML

       <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:layout_gravity="start"
        android:visibility="visible">

        <TextView
            android:id="@+id/partner_full_name"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:gravity="left"
            android:layout_alignParentLeft="true"
            android:textColor="@color/black"
            android:maxLines="2"
            android:textSize="12sp"
            android:layout_toLeftOf="@+id/session_duration"
            android:text="@string/dummy_text" />
        <TextView
            android:id="@+id/session_duration"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginRight="16dp"
            android:maxLines="1"
            android:textSize="12sp"
            android:layout_alignParentRight="true"
            android:text="asdadsd"
            android:textColor="@android:color/darker_gray"
            />
    </RelativeLayout>

结果

Result

正如你所看到的那样合适,但第二个TextView在右侧,当我希望它在第一个TextView之后。 当我使用LinearLayout时,我面临第一个TextView大小的问题(如果它有许多文本,第二个TextView将关闭屏幕)。使用LinearLayout的另一种方法给了我与RelativeLayout相似的结果同样的问题(第二视图的错误位置)

2 个答案:

答案 0 :(得分:2)

这是因为您使用的是wrap_content。如果textView1需要整个屏幕的空间,则textView2将无法获得任何内容。相反,您可以使用layout_weight始终为View提供空间。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_gravity="start"
    android:gravity="center"
    android:visibility="visible"
    android:orientation="horizontal">

<TextView
    android:id="@+id/partner_full_name"
    android:layout_width="0dp"
    android:layout_weight=".5"
    android:layout_height="wrap_content"
    android:gravity="left"
    android:maxLines="2"
    android:text="Super Long String"
    android:textColor="@color/black"
    android:textSize="12sp" />

<TextView
    android:id="@+id/session_duration"
    android:layout_width="0dp"
    android:layout_weight=".5"
    android:layout_height="wrap_content"
    android:maxLines="1"
    android:text="I will always show"
    android:textColor="@android:color/darker_gray"
    android:textSize="12sp" />
</LinearLayout>

答案 1 :(得分:0)

从第二个TextView中删除此行:

android:layout_alignParentRight="true"