左侧的Textview,右侧的按钮非绝对值

时间:2010-08-10 05:30:08

标签: android user-interface layout

我正试图让我的textview拥抱屏幕的左侧,而按钮拥抱右侧(如果可能的话,只是为了让文本视图中心本身垂直与按钮一致)但是不要使用绝对值。这是我的编码:

<?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"
>
<TextView
android:layout_width="100px"
android:layout_height="wrap_content"
android:layout_gravity="left"
android:text="Change City:"
/>
<Button 
android:layout_width="100px" 
android:layout_height="wrap_content" 
android:layout_gravity="right"
android:text="Click" 
android:id="@+id/citychoicebutton"
/>
</LinearLayout>

我认为layout_gravity照顾了我正在尝试做的事情,但显然没有。

2 个答案:

答案 0 :(得分:3)

Gravity指定如何将元素放置在元素本身内,而不是在父元素(屏幕)的边界内。

这意味着如果您的文本宽度仅为50px,但您已将100px分配给TextView,则实际字符将自己放置在100px空间的左侧,中间或右侧(根据重力值)。

使用LinearLayout,您必须假设屏幕宽度达到您想要的效果并使用“dip”作为一个单元,并希望最好(在您的模拟器上测试不同的屏幕尺寸)。

更好的选择是相对布局,并使用android:layout_alignParentLeft和android:layout_alignParentRight。

顺便提一下,建议一般使用“dip”(密度无关像素)而不是“px”作为布局单位。

密度无关像素单位现在是“dp”。 “dip”仍然有效。

答案 1 :(得分:2)

您可以尝试将RelativeLayout与

一起使用
android:layout_alignParentLeft

用于TextView和

android:layout_alignParentRight

表示Button。要对齐按钮和TextView,您可以使用

android:layout_alignbaseLIne 
Button上的

属性。