重叠的按钮

时间:2017-11-28 20:58:04

标签: android-layout

我想创建这个按钮布局

enter image description here

我做了

         <RelativeLayout
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:layout_weight="0.5"
                android:lay="10dp">
                <View android:id="@+id/strut"
                    android:layout_width="0dp"
                    android:layout_height="0dp"
                    android:layout_centerHorizontal="true"/>

                <Button
                    android:id="@+id/button4"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_alignRight="@id/strut"
                    android:layout_alignParentLeft="true"
                    android:background="@drawable/notificacion_desactivado" />
                <Button
                    android:id="@+id/button6"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_alignLeft="@id/strut"
                    android:layout_alignParentRight="true"
                    android:background="@drawable/alarma_desactivada" />
                <Button
                    android:id="@+id/button5"
                    android:layout_width="100dp"
                    android:layout_height="wrap_content"
                    android:layout_marginBottom="dp"

                    android:background="@drawable/icono_notificacion_suelto" />

            </RelativeLayout>

现在我有这样的事情: enter image description here但是不知道如何使中央按钮与相对布局重叠,我使用了边距和填充,但仍然无法使按钮跨越布局。

2 个答案:

答案 0 :(得分:1)

这是使用ConstraintLayout执行此操作的方法。将需要的两个按钮放在LinearLayout内的第3个按钮下方,并相应地约束第3个按钮。

<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <LinearLayout
        android:id="@+id/buttonLayout"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_marginBottom="38dp"
        android:layout_marginEnd="8dp"
        android:layout_marginStart="8dp"
        android:orientation="horizontal"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent">

        <Button
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"/>

        <Button
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1" />

    </LinearLayout>

    <Button
        android:layout_width="50dp"
        android:layout_height="50dp"
        app:layout_constraintEnd_toEndOf="@id/buttonLayout"
        app:layout_constraintStart_toStartOf="@id/buttonLayout"
        app:layout_constraintBottom_toBottomOf="@id/buttonLayout"
        app:layout_constraintTop_toTopOf="@id/buttonLayout"
        android:layout_marginBottom="30dp"
        android:background="@color/colorAccent"/>

</android.support.constraint.ConstraintLayout>

这是输出的样子

enter image description here

更改android:layout_marginBottom值以向上或向下移动第3个按钮。

希望这有帮助!

答案 1 :(得分:1)

This code works for me :)
<RelativeLayout android:layout_width="match_parent"
    android:layout_height="match_parent"
    xmlns:android="http://schemas.android.com/apk/res/android">
    <View android:id="@+id/strut"
        android:layout_width="0dp"
        android:layout_height="0dp"
        android:layout_centerHorizontal="true"/>

    <Button
        android:id="@+id/button4"
        android:layout_width="wrap_content"
        android:layout_height="60dp"
        android:layout_alignRight="@id/strut"
        android:layout_alignParentLeft="true"
        android:background="@color/text_gray" />
    <Button
        android:id="@+id/button6"
        android:layout_width="wrap_content"
        android:layout_height="60dp"
        android:layout_alignLeft="@id/strut"
        android:layout_alignParentRight="true"
        android:background="@color/red" />
    <Button
        android:id="@+id/button5"
        android:layout_width="60dp"
        android:layout_height="60dp"
        android:layout_centerHorizontal="true"
        android:background="@drawable/app_logo_main" />

</RelativeLayout>