2016-07-06 53 views
2

我想讓我的Button組件和我的TextView組件垂直對齊並居中。彼此之間也有一點間距。現在他們只是在彼此之上。垂直對齊按鈕和textview組件android

enter image description here

XML:

<RelativeLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:id="@+id/dueDateSection" 
     android:layout_below="@+id/editSection" 
     android:paddingBottom="@dimen/activity_edit_item_layout_vertical_margin" 
     android:paddingTop="@dimen/activity_edit_item_layout_vertical_margin" 
     android:gravity="center_vertical"> 

     <Button 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:id="@+id/btnDatePicker" 
      android:text="Select Date" 
      android:layout_alignParentTop="true" 
      android:layout_centerHorizontal="true" /> 

     <TextView 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_below="@id/btnDatePicker" 
      android:textSize="22sp" 
      android:gravity="center" 
      android:layout_alignParentTop="true" 
      android:layout_centerHorizontal="true" 
      android:layout_alignBottom="@id/btnDatePicker" /> 

    </RelativeLayout> 
+1

使用線性佈局............... – sushildlh

回答

1

使用LinearLayoutandroid:orientation="vertical"屬性

<?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:orientation="vertical"> 

<Button 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:text="B1"/> 

<TextView 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:text="YOUR TEXT"/> 

</LinearLayout> 

這可能會幫助你。

2

使用這個....

<LinearLayout android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:id="@+id/dueDateSection" 
    android:orientation="vertical" 
    android:gravity="center" 
    xmlns:android="http://schemas.android.com/apk/res/android"> 



    <Button 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:id="@+id/btnDatePicker" 
     android:marginRight="5dp" 
     android:text="Select Date"/> 

    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_below="@id/btnDatePicker" 
     android:textSize="22sp" 
     android:text="Hi this is simple"/> 



</LinearLayout> 

output

2
<RelativeLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:id="@+id/dueDateSection" 
    android:layout_below="@+id/editSection" 
    android:paddingBottom="15dp" 
    android:paddingTop="15dp" 
    android:gravity="center_vertical"> 

    <LinearLayout 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_centerInParent="true" 
     android:orientation="vertical"> 
     <Button 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:id="@+id/btnDatePicker" 
      android:text="Select Date" /> 

     <TextView 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_below="@id/btnDatePicker" 
      android:textSize="22sp" 
      android:text="CORE JAVA" 
      /> 
    </LinearLayout> 


</RelativeLayout> 

this will look like this

2

只是爲了添加到上面的答案,你必須喜歡使用,只要你想所有的組件,垂直對齊(或水平)的線性佈局。

由於在相對佈局中,組件相對於其他組件定位,它增加了佈局的複雜性。並且當您使用設計生成佈局時,它無效。

線性佈局一些提示,如果你在將來的運用:

  1. 使用android:orientation="vertical"的組件垂直對齊。 android:orientation="horizontal"組件要水平對齊。如下所示

  2. 使用weightSum和重量:

    <Button 
        android:layout_width="wrap_content" 
        android:layout_height="0dp" 
        android:text="New Button" 
        android:id="@+id/button" 
        android:layout_gravity="center_horizontal" 
        android:layout_weight="1" /> 
    
    <EditText 
        android:layout_width="match_parent" 
        android:layout_height="0dp" 
        android:id="@+id/editText" 
        android:layout_gravity="center_horizontal" 
        android:layout_weight="2" /> 
    
    <Button 
        android:layout_width="wrap_content" 
        android:layout_height="0dp" 
        android:text="New Button" 
        android:id="@+id/button2" 
        android:layout_gravity="center_horizontal" 
        android:layout_weight="1" /> 
    
    <EditText 
        android:layout_width="match_parent" 
        android:layout_height="0dp" 
        android:id="@+id/editText2" 
        android:layout_gravity="center_horizontal" 
        android:layout_weight="2" /> 
    

這裏佈局的分配12的總重量和所述的兒童用不同的權重分配,(Button與EditText的高度比爲1是2,並且所有4個孩子一起佔據佈局的總高度的一半是重量的總和所有兒童的總和爲6,weightSum爲12)

Linear Layout