我需要在一行中放入2个TextViews。我尝试使用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>
结果
如您所见,这很好,但是第二个TextView位于右侧,当我希望它位于第一个TextView之后时。
当我使用LinearLayout时,我遇到第一个TextView的大小问题(如果其中包含很多文本,第二个TextView将不在屏幕上)。使用LinearLayout的另一种方法给我带来了与RelativeLayout类似的结果,但存在相同的问题(第二个视图的位置错误)
最佳答案
发生这种情况是因为您正在使用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>
关于android - 适合2个TextViews,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41035508/