在Android布局中标题TextView下方的屏幕中集中排列按钮

时间:2014-10-31 11:04:43

标签: android android-layout

我正在尝试在Android活动的可用空间中心垂直排列3个按钮。我在TextView中也有一个标题字段,我需要它在显示屏的顶部,它与按钮之间有一个垂直间隙。我还需要底部按钮和屏幕底部之间的空白区域与顶部按钮和TextView底部之间的空间相同。

从阅读文档来看,一对嵌套的垂直LinearLayouts应该可以完成下面的工作,但是这使我在TextView后面紧跟着排列的按钮,TextView和顶部按钮之间没有空格。

任何有关如何实现目标的想法都会感激不尽。

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

    <TextView android:id="@+id/app_title_text"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="@string/app_title_label"
        android:gravity="top"
        style="?android:listSeparatorTextViewStyle"
    />

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical" 
        android:layout_gravity="center" >

        <Button android:id="@+id/button_1"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginLeft="16dp"
            android:layout_marginRight="16dp"
        />

        <Button android:id="@+id/button_2"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginLeft="16dp"
            android:layout_marginRight="16dp"
        />

        <Button android:id="@+id/button_3"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginLeft="16dp"
            android:layout_marginRight="16dp"
        />

    </LinearLayout>

</LinearLayout>

谢谢,

4 个答案:

答案 0 :(得分:0)

为第二个布局赋予重量

<TextView android:id="@+id/app_title_text"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="@string/app_title_label"
    android:gravity="top"
    style="?android:listSeparatorTextViewStyle"
/>

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" 
    android:layout_weight="1"
    android:layout_gravity="center" >

    <Button android:id="@+id/button_1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginLeft="16dp"
        android:layout_marginRight="16dp"
    />

    <Button android:id="@+id/button_2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginLeft="16dp"
        android:layout_marginRight="16dp"
    />

    <Button android:id="@+id/button_3"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginLeft="16dp"
        android:layout_marginRight="16dp"
    />

</LinearLayout>

这应该可以解决您的问题

答案 1 :(得分:0)

使用gravity代替layout_gravity

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

    <TextView android:id="@+id/app_title_text"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="@string/app_title_label"
        android:gravity="top"
        style="?android:listSeparatorTextViewStyle" />

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical" 
        android:gravity="center" >

        <Button android:id="@+id/button_1"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginLeft="16dp"
            android:layout_marginRight="16dp" />

        <Button android:id="@+id/button_2"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginLeft="16dp"
            android:layout_marginRight="16dp" />

        <Button android:id="@+id/button_3"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginLeft="16dp"
            android:layout_marginRight="16dp" />

    </LinearLayout>

</LinearLayout>

答案 2 :(得分:0)

尝试以下代码: - 复制此xml文件

  <?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="match_parent"
     android:layout_marginTop="40dp"
     android:orientation="vertical" >

 <TextView
    android:id="@+id/textView1"
    android:layout_width="162dp"
    android:layout_height="wrap_content"
    android:layout_gravity="center"
    android:layout_marginLeft="20dp"
    android:layout_marginRight="30dp"
    android:layout_marginTop="40dp"
    android:text="Medium Text"
    android:textAppearance="?android:attr/textAppearanceMedium" />

 <Button
    android:id="@+id/button1"
    android:layout_width="236dp"
    android:layout_height="wrap_content"
    android:layout_gravity="center"
    android:layout_marginBottom="20dp"
    android:layout_marginTop="40dp"
    android:text="Button" />

 <Button
    android:id="@+id/button2"
    android:layout_width="246dp"
    android:layout_height="wrap_content"
    android:layout_gravity="center"
    android:layout_marginTop="20dp"
    android:text="Button" />

 <Button
    android:id="@+id/button3"
    android:layout_width="239dp"
    android:layout_height="wrap_content"
    android:layout_gravity="center"
    android:layout_marginBottom="40dp"
    android:layout_marginTop="40dp"
    android:text="Button" />

   </LinearLayout>

我使用此行在textview

之后安排按钮
 android:layout_marginTop="40dp" 

答案 3 :(得分:0)

android:gravity="center" 

而不是

android:layout_gravity="center"

下面添加了工作设计

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

<TextView
    android:id="@+id/app_title_text"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:gravity="top"
    android:text="hifgd" />

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_marginLeft="16dp"
    android:layout_marginRight="16dp"
    android:gravity="center"
    android:orientation="vertical" >

    <Button
        android:id="@+id/button_1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />

    <Button
        android:id="@+id/button_2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />

    <Button
        android:id="@+id/button_3"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />
</LinearLayout>

</LinearLayout>