我正在尝试在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>
谢谢,
答案 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>