垂直对齐按钮和textview组件android

时间:2016-07-06 05:43:49

标签: android android-layout textview

我正在努力让我的Button组件和我的TextView组件垂直对齐并且也居中。彼此之间也有一点间距。现在他们只是在彼此之上。

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>

4 个答案:

答案 0 :(得分: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

答案 1 :(得分: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 :(得分:2)

只需要添加上述答案,只要您希望所有组件垂直(或水平)对齐,就必须使用线性布局。

由于在相对布局中,组件相对于其他组件是定位的,因此会增加布局的复杂性。当您使用设计生成布局时,它无效。

如果您将来使用线性布局,很少有提示:

  1. 使用android:orientation="vertical"将组件垂直对齐。 android:orientation="horizontal"要使组件水平对齐。

  2. 使用weightSum和weight如下所示:

    <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" />
    

  3. 这里布局的总重量为12,子项被赋予不同的权重,(按钮高度与EditText的比率为1为2,所有4个孩子一起占据布局总高度的一半,所有儿童的重量总和为6,weightSum为12)

    Linear Layout

答案 3 :(得分: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>

这可能会对你有所帮助。