在Android上将按钮移动到下半部分

时间:2014-06-14 18:40:58

标签: android xml android-layout

我一直试图找到一种方法将我的按钮移动到xml文件的下半部分。目前他们处于上半部分。

enter image description here

我正在尝试按照此处找到的此解决方案,但我担心它不适用。

Put buttons at bottom of screen with LinearLayout?

我的buttons.xml是:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:id="@+id/layout"
              android:orientation="vertical"
              android:layout_width="fill_parent"
              android:layout_height="fill_parent"
              android:weightSum="1">

    <TableLayout android:id="@+id/tableLayout1"
                 android:layout_height="wrap_content"
                 android:layout_width="fill_parent" />

    <Button
        android:id="@+id/block_button"
        style="?android:attr/borderlessButtonStyle"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="right|center_vertical"
        android:layout_weight="0.09"
        android:background="#ff5ac3ff"
        android:drawableLeft="@drawable/ic_action"
        android:gravity="center_horizontal|center_vertical"
        android:text="@string/block_apps"
        android:textSize="22sp" />

    <Button
        android:id="@+id/security_settings_button"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="#ff5ac3ff"
        style="?android:attr/borderlessButtonStyle"
        android:layout_weight="0.09"
        android:drawableLeft="@drawable/ic_settings"
        android:gravity="center_horizontal|center_vertical"
        android:text="@string/security_settings"
        android:textSize="22sp"/>

    <Button
        android:id="@+id/blacklist_whitelist_button"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="#ff5ac3ff"
        style="?android:attr/borderlessButtonStyle"
        android:drawableLeft="@drawable/ic_blacklist_red"
        android:gravity="center_horizontal|center_vertical"
        android:text="@string/blacklist_whitelist"
        android:textSize="22sp"
        android:layout_weight="0.09"/>


</LinearLayout>

3 个答案:

答案 0 :(得分:1)

你应该尝试这样的事情。基本上,如果您使用layout_weight,则需要将高度或宽度(取决于您的方向:垂直或水平)设置为&#34; 0dp&#34;。否则,视图不会使用权重属性。试试这个xml:

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
                  android:id="@+id/layout"
                  android:orientation="vertical"
                  android:layout_width="fill_parent"
                  android:layout_height="fill_parent">

        <TextView android:id="@+id/emptySpace"
                  android:layout_height="0dp"
                  android:layout_width="fill_parent"
                  android:layout_weight="3" />

        <Button
            android:id="@+id/block_button"
            style="?android:attr/borderlessButtonStyle"
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_gravity="right|center_vertical"
            android:layout_weight="1"
            android:background="#ff5ac3ff"
            android:drawableLeft="@drawable/ic_action"
            android:gravity="center_horizontal|center_vertical"
            android:text="@string/block_apps"
            android:textSize="22sp" />

        <Button
            android:id="@+id/security_settings_button"
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:background="#ff5ac3ff"
            style="?android:attr/borderlessButtonStyle"
            android:layout_weight="1"
            android:drawableLeft="@drawable/ic_settings"
            android:gravity="center_horizontal|center_vertical"
            android:text="@string/security_settings"
            android:textSize="22sp"/>

        <Button
            android:id="@+id/blacklist_whitelist_button"
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:background="#ff5ac3ff"
            style="?android:attr/borderlessButtonStyle"
            android:drawableLeft="@drawable/ic_blacklist_red"
            android:gravity="center_horizontal|center_vertical"
            android:text="@string/blacklist_whitelist"
            android:textSize="22sp"
            android:layout_weight="1"/>
    </LinearLayout>

顺便说一句,我将tablelayout更改为空文本视图,但您应该可以在那里使用任何其他类型的视图。只是在那里填补空间。

此外,对于layout_weights,请注意超出屏幕大小的布局(如scrollview)。那会甩掉你的重量。布局权重最适合已知的布局尺寸。

答案 1 :(得分:1)

我建议你将整个布局划分为6个相等的LinearLayouts,然后在最后三个布局中设置按钮..

试试这段代码..

<LinearLayout android:orientation="horizontal" android:layout_height="fill_parent" android:layout_width="fill_parent">
  <LinearLayout android:layout_weight="1" android:layout_height="fill_parent" android:layout_width="fill_parent"></LinearLayout>
  <LinearLayout android:layout_weight="1" android:layout_height="fill_parent" android:layout_width="fill_parent"></LinearLayout>
  <LinearLayout android:layout_weight="1" android:layout_height="fill_parent" android:layout_width="fill_parent"></LinearLayout>
  <LinearLayout android:layout_weight="1" android:layout_height="fill_parent" android:layout_width="fill_parent">
    <Button
        android:id="@+id/block_button"
        style="?android:attr/borderlessButtonStyle"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="right|center_vertical"
        android:layout_weight="0.09"
        android:background="#ff5ac3ff"
        android:drawableLeft="@drawable/ic_action"
        android:gravity="center_horizontal|center_vertical"
        android:text="@string/block_apps"
        android:textSize="22sp" />

  </LinearLayout>
  <LinearLayout android:layout_weight="1" android:layout_height="fill_parent" android:layout_width="fill_parent">

     <Button
        android:id="@+id/security_settings_button"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="#ff5ac3ff"
        style="?android:attr/borderlessButtonStyle"
        android:layout_weight="0.09"
        android:drawableLeft="@drawable/ic_settings"
        android:gravity="center_horizontal|center_vertical"
        android:text="@string/security_settings"
        android:textSize="22sp"/>

  </LinearLayout>
  <LinearLayout android:layout_weight="1" android:layout_height="fill_parent" android:layout_width="fill_parent">
     <Button
        android:id="@+id/blacklist_whitelist_button"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="#ff5ac3ff"
        style="?android:attr/borderlessButtonStyle"
        android:drawableLeft="@drawable/ic_blacklist_red"
        android:gravity="center_horizontal|center_vertical"
        android:text="@string/blacklist_whitelist"
        android:textSize="22sp"
        android:layout_weight="0.09"/>

   </LinearLayout>
</LinearLayout>

请告诉我输出是什么..

答案 2 :(得分:0)

我已对此进行了测试,它应该可以正常工作,因为我使用的是测试内容,所以您必须更改按钮属性。图像。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/layout"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:weightSum="1">

    <TableLayout android:id="@+id/tableLayout1"
        android:layout_height="wrap_content"
        android:layout_width="fill_parent" />
<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_weight="1"
    android:gravity="bottom"
    android:orientation="vertical">
    <Button
        android:id="@+id/block_button"
        style="?android:attr/borderlessButtonStyle"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="#ff5ac3ff"
        android:drawableLeft="@drawable/ic_launcher"
        android:gravity="center_horizontal|center_vertical"
        android:text="@string/block_apps"
        android:textSize="22sp" />

    <Button
        android:id="@+id/security_settings_button"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="#ff5ac3ff"
        style="?android:attr/borderlessButtonStyle"
        android:drawableLeft="@drawable/ic_launcher"
        android:gravity="center_horizontal|center_vertical"
        android:text="security settings"
        android:textSize="22sp"/>

    <Button
        android:id="@+id/blacklist_whitelist_button"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="#ff5ac3ff"
        style="?android:attr/borderlessButtonStyle"
        android:drawableLeft="@drawable/ic_launcher"
        android:gravity="center_horizontal|center_vertical"
        android:text="black white list"
        android:textSize="22sp"/>
</LinearLayout>

</LinearLayout>