我有一个动态大小的RelativeLayout,包含带有任意文本的TextView。我也有固定大小的TextView与时间戳。我想将RelativeLayout和TextView的时间戳放在一行中,并排放置。
像这样:
我真正得到的是:
如您所见,带文本的布局只占据整个宽度。
XML:
<RelativeLayout android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/news_list_element"
android:layout_marginRight="5dip"
android:layout_alignParentLeft="true"
android:focusable="false"
android:paddingRight="8dip"
android:paddingLeft="17dip"
android:paddingTop="4dip"
android:paddingBottom="4dip">
<TextView android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/news_list_text"
android:background="@android:color/transparent"
android:textColor="#000000"
android:focusable="false"
android:padding="3dip"
/>
</RelativeLayout>
<TextView android:id="@+id/messages_dialog_timestamp_in"
android:background="#000000"
android:text="12:05"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_toRightOf="@id/news_list_element"
android:paddingBottom="9dip"
android:paddingLeft="0dip"
android:textColor="#8f9eac"
/>
答案 0 :(得分:1)
试试这个:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:id="@+id/news_list_text"
android:background="@android:color/transparent"
android:textColor="#000000"
android:focusable="false"
android:padding="3dip"
android:layout_weight="1"
android:layout_gravity="left"
/>
<TextView android:id="@+id/messages_dialog_timestamp_in"
android:background="#000000"
android:text="12:05"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingBottom="9dip"
android:paddingLeft="0dip"
android:textColor="#8f9eac"
android:layout_gravity="right"
/>
android:layout_gravity="left"
将使消息TextView从父级的左边缘开始。
android:layout_gravity="right"
会将时间戳Textview放在父级的右边缘。
android:layout_width="0dp"
与TextView消息中的android:layout_weight="1"
相结合,将导致其展开以填充所有剩余空间 所有其他小部件到位并具有所需空间留出(因此它不会将时间戳推离屏幕)。
此布局与您显示的内容略有不同,即使使用短消息,Textview区域也会展开以填充可用空间,并使时间戳显示在右边缘的垂直线上(这看起来更整洁IMO)