在android布局中我想要有两行:
在第一行中,ONE按钮位于屏幕中间的顶部。 Ledt和它的一些空间。
下面有一排其他按钮,按一下距离的第一个按钮。
以下是我尝试使用的代码。对于我尝试LinearLayout
以及android:layout_gravity="center_vertical"
的第一个android:layout_gravity="center_horizontal"
,我在android:layout_marginBottom="10dp"
和中添加了一行LinearLayout
第一个Button
。我使用this answer作为模板。
但是,第一行和第二行的按钮之间没有垂直空间,第一行(顶部)的第一个按钮位于屏幕的 left 侧。我以为我确实在xml
文件中放了正确的属性,但可能要复杂得多。一如既往......
以下是完整xml
的代码:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity" >
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginBottom="10dp"
>
<Button
android:id="@+id/list_ok"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="10dp"
android:text="@string/ok"
android:onClick="buttonEndStat"
>
</Button>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:id="@+id/header_list"
android:layout_marginTop="36dp"
>
<Button
android:id="@+id/listname"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="0.225"
android:layout_below="@id/list_ok"
android:text="@string/headerName">
</Button>
<Button
android:id="@+id/listok"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="0.1"
android:text="@string/headerOK">
</Button>
<Button
android:id="@+id/listnok"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="0.1"
android:text="@string/headerNOK">
</Button>
<Button
android:id="@+id/listhist"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="0.2"
android:text="@string/headerHist">
</Button>
<Button
android:id="@+id/listprandom"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="0.15"
android:text="@string/headerP">
</Button>
<Button
android:id="@+id/listphist"
android:layout_width="0px"
android:layout_height="wrap_content"
android:layout_weight="0.075"
android:text="@string/headerH">
</Button>
<Button
android:id="@+id/listptot"
android:layout_width="0px"
android:layout_height="wrap_content"
android:layout_weight="0.075"
android:text="@string/headerProb">
</Button>
<Button
android:id="@+id/listproc"
android:layout_width="0px"
android:layout_height="wrap_content"
android:layout_weight="0.075"
android:text="%">
</Button>
</LinearLayout>
<ListView
android:id="@+id/listview1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="5dp"
android:layout_below="@id/header_list"
>
</ListView>
</RelativeLayout>
答案 0 :(得分:2)
我会删除第一个LinearLayout,只是让按钮本身在屏幕上水平居中并有一些余量(我假设根元素是一个LinearLayout):
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">
<Button
android:id="@+id/list_ok"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:text="@string/ok"
android:layout_gravity="center_horizontal"
>
</Button>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:id="@+id/header_list"
android:layout_marginTop="36dp">
<Button
android:id="@+id/listname"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="0.225"
android:layout_below="@id/list_ok"
android:text="@string/headerName">
</Button>
<Button
android:id="@+id/listok"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="0.1"
android:text="@string/headerOK">
</Button>
<Button
android:id="@+id/listnok"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="0.1"
android:text="@string/headerNOK">
</Button>
<Button
android:id="@+id/listhist"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="0.2"
android:text="@string/headerHist">
</Button>
<Button
android:id="@+id/listprandom"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="0.15"
android:text="@string/headerP">
</Button>
<Button
android:id="@+id/listphist"
android:layout_width="0px"
android:layout_height="wrap_content"
android:layout_weight="0.075"
android:text="@string/headerH">
</Button>
<Button
android:id="@+id/listptot"
android:layout_width="0px"
android:layout_height="wrap_content"
android:layout_weight="0.075"
android:text="@string/headerProb">
</Button>
<Button
android:id="@+id/listproc"
android:layout_width="0px"
android:layout_height="wrap_content"
android:layout_weight="0.075"
android:text="%">
</Button>
</LinearLayout>
<ListView
android:id="@+id/listview1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="5dp"
android:layout_below="@id/header_list"
>
</ListView>
</LinearLayout>
如果您想让第一个LinearLayout从中删除属性layout_gravity
,并将android:layout_gravity="center_horizontal"
添加到按钮以使其水平居中。
修改强>
如果使用RelativeLayout作为根元素,则必须指定每个子项定位。您忘了将“header_list”放在首行下方:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity" >
<LinearLayout
android:id="@+id/top_row"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="10dp"
android:gravity="center_horizontal"
>
<Button
android:id="@+id/list_ok"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="10dp"
android:text="@string/ok"
android:onClick="buttonEndStat"
>
</Button>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:id="@+id/header_list"
android:layout_below="@id/top_row"
>
<Button
android:id="@+id/listname"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="0.225"
android:layout_below="@id/list_ok"
android:text="@string/headerName">
</Button>
<Button
android:id="@+id/listok"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="0.1"
android:text="@string/headerOK">
</Button>
<Button
android:id="@+id/listnok"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="0.1"
android:text="@string/headerNOK">
</Button>
<Button
android:id="@+id/listhist"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="0.2"
android:text="@string/headerHist">
</Button>
<Button
android:id="@+id/listprandom"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="0.15"
android:text="@string/headerP">
</Button>
<Button
android:id="@+id/listphist"
android:layout_width="0px"
android:layout_height="wrap_content"
android:layout_weight="0.075"
android:text="@string/headerH">
</Button>
<Button
android:id="@+id/listptot"
android:layout_width="0px"
android:layout_height="wrap_content"
android:layout_weight="0.075"
android:text="@string/headerProb">
</Button>
<Button
android:id="@+id/listproc"
android:layout_width="0px"
android:layout_height="wrap_content"
android:layout_weight="0.075"
android:text="%">
</Button>
</LinearLayout>
<ListView
android:id="@+id/listview1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="5dp"
android:layout_below="@id/header_list"
>
</ListView>
</RelativeLayout>
要水平居中按钮,请将android:gravity="center_horizontal"
添加到其父级。