在Android布局中左alignment和右alignment文字视图
我正在开始使用Android。 我很难得到一个简单的布局。
我想使用LinearLayout
将两个TextViews
放在一行中。 一个TextView
在左边,另一个在右边(类似于float:left,float:right在CSS中)。
这是可能的,还是我需要使用不同的ViewGroup
或进一步布局嵌套来实现它?
以下是我到目前为止:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="horizontal" android:padding="10sp"> <TextView android:id="@+id/mytextview1" android:layout_height="wrap_content" android:text="somestringontheleftSomestring" android:layout_width="wrap_content"/> <TextView android:id="@+id/mytextview2" android:layout_height="wrap_content" android:ellipsize="end" android:text="somestringontheright" android:layout_width="wrap_content"/> </LinearLayout>
对layout_alignParentLeft
和layout_alignParentRight
使用RelativeLayout
:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/RelativeLayout01" android:layout_width="fill_parent" android:layout_height="fill_parent" android:padding="10dp"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:id="@+id/mytextview1"/> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentRight="true" android:id="@+id/mytextview2"/> </RelativeLayout>
另外, 你应该在你的布局中使用dip
(或者dp
)而不是sp
。 sp
反映文本设置以及屏幕密度,因此通常只用于调整文本项目大小。
您可以使用重力属性来“浮动”视图。
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"> <LinearLayout android:layout_width="fill_parent" android:layout_height="fill_parent" android:gravity="center_vertical|center_horizontal" android:orientation="horizontal"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="left" android:layout_weight="1" android:text="Left Aligned" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="right" android:layout_weight="1" android:text="Right Aligned" /> </LinearLayout> </LinearLayout>
即使Rollin_s的提示,Dave Webb的答案不适合我。 右侧TextView
中的文本仍然与左侧TextView
的文本重叠。
我最终得到了这样的想要的行为:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/RelativeLayout01" android:layout_width="match_parent" android:layout_height="match_parent" android:padding="10dp"> <TextView android:id="@+id/mytextview1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" /> <TextView android:id="@+id/mytextview2" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_toRightOf="@id/mytextview1" android:gravity="right"/> </RelativeLayout>
请注意,mytextview2将"android:layout_width"
设置为"match_parent"
。
希望这可以帮助别人!
<TextView android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:text="Hello world" /> <View android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="1" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Gud bye" />