2011-11-25 171 views
2

我可以知道如何将这三个Textviews旁边的Button对齐吗?而不是在Textviews下方。 这是XML文件。 如何对齐右侧的按钮?

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
     android:layout_width="fill_parent" android:layout_height="fill_parent" 
     android:orientation="vertical" android:id="@+id/linearlayout1" 
     android:background="#000000"> 

      <TextView android:layout_width="wrap_content" 
       android:layout_height="wrap_content" android:id="@+id/textview1" 
       android:layout_alignParentLeft="true" android:text="Textview1" /> 

      <TextView android:layout_width="wrap_content" 
       android:layout_height="wrap_content" android:text="Textview2" 
       android:layout_alignParentLeft="true" android:id="@+id/Textview2" /> 

      <TextView android:layout_width="wrap_content" 
       android:layout_height="wrap_content" android:layout_alignParentLeft="true" 
       android:text="Textview3" android:id="@+id/Textview3" /> 

     <RelativeLayout android:id="@+id/relativeLayout2" 
      android:layout_width="wrap_content" android:layout_height="wrap_content"> 
      <Button android:id="@+id/button" android:layout_width="70px" 
       android:layout_height="38px" android:text="Button" 
       /> 
     </RelativeLayout> 
    </LinearLayout> 
</RelativeLayout> 

回答

5

IMO你应该把三个textviews和按钮,在RelativeLayout的,并摆脱的LinearLayout的。因为每个ViewGroup都会在布局和绘制过程中增加开销,所以您只能使用一个布局时没有意义。做:

<RelativeLayout> 
    <TextView android:id="@+id/tv1" android:layout_alignParentTop="true" android:layout_alignParentLeft="true"/> 
    <TextView android:id="@+id/tv2" android:layout_alignParentLeft="true" android:layout_below="@id/tv1"/> 
    <TextView android:id="@+id/tv3" android:layout_alignParentLeft="true" android:layout_below="@id/tv2"/> 
    <Button android:id="@+id/btn" android:layout_toRightOf="@id/tv1"/> 
</RelativeLayout> 

我没有编译这个,但它应该做你所需要的。玩弄你给出的布局参数按钮(你可以将它对齐到父项的顶部和右侧,或任何文本框的右侧等)。

的RelativeLayout的很厉害;你应该真正利用它的灵活性。

+0

我将按钮设置在tv3的右侧。那么tv1和tv2会相互覆盖。 – sowhat

3

使用attribut您Buttonandroid:layout_alignParentRight = "true"

所以你Button XML代码将是这样的:

<Button android:id="@+id/button" 
     android:layout_width="70px" 
     android:layout_height="38px" 
     android:text="Button" 
     android:layout_alignParentRight="true" <!-- align the Button on the right side --> 
/> 
+0

那不是只是把三个文本框下面的按钮,排列在屏幕的右侧? – noobler

+0

可以对齐按钮,使其位于文本视图的“中心”右侧?因为我有三个文字浏览,现在我使用alignParentRight后,该按钮在底部,它仍然在底部,但对齐到正确的位置。 – sowhat

+0

@noobler:三个textViews的推杆上的LinearLayout,用户家伙想按钮对准右侧 – Houcine

-1

你的问题标题建议你只是想对齐该按钮位于屏幕的右侧。在这种情况下,其他答案很好。不过,在你的问题中,你说你想让按钮在Textviews旁边。在这种情况下,阅读以下内容:

你的外LinearLayout是垂直方向,所以其所有直接子女将低于对方。根据你想要的外观,你可能想在你目前的LinearLayout之外或之内嵌入一个水平的LinearLayout

一个RelativeLayout定位其子彼此相对,而不是相对于东西在它之外。也许你想沿着这些线路的东西(我没有尝试进行编译):

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
     android:layout_width="fill_parent" android:layout_height="fill_parent" 
     android:orientation="horizontal" android:id="@+id/linearlayout1" 
     android:background="#000000"> 

    <Button android:id="@+id/button" android:layout_width="70px" 
     android:layout_height="38px" android:text="Button" /> 

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
      android:layout_width="fill_parent" android:layout_height="fill_parent" 
      android:orientation="vertical" android:id="@+id/linearlayout1" 
      android:background="#000000"> 

      <TextView android:layout_width="wrap_content" 
       android:layout_height="wrap_content" android:id="@+id/textview1" 
       android:layout_alignParentLeft="true" android:text="Textview1" /> 

      <TextView android:layout_width="wrap_content" 
       android:layout_height="wrap_content" android:text="Textview2" 
       android:layout_alignParentLeft="true" android:id="@+id/Textview2" /> 

      <TextView android:layout_width="wrap_content" 
       android:layout_height="wrap_content" android:layout_alignParentLeft="true" 
       android:text="Textview3" android:id="@+id/Textview3" /> 
    </LinearLayout> 
</LinearLayout> 
0

您还可以使用:

android:layout_gravity="end"