约束布局中心两个水平按钮,边距很小,垂直居中

时间:2017-07-25 09:05:18

标签: android android-constraintlayout

我想把我的白色按钮放在屏幕中央,有这样的限制。 1.在父边缘之间水平居中,并可能放置一些边距。 2.在顶部父按钮和按钮按钮之间垂直居中。 现在我的布局在图像上看起来像这样

enter image description here

好吧我想我可以把这个按钮放在一些FrameLayout然后约束它,但这似乎是压倒性的添加另一个布局。我添加了D-Pad和XAYB这样添加下一个FrameLayout甚至RelativeLayout似乎与使用ConstraintLayout相矛盾,其目的是防止许多布局的深度嵌套,如线性,相对,帧布局。

1 个答案:

答案 0 :(得分:9)

好的,我通过在屏幕的水平中间添加垂直指南解决了这个问题 使用(50%=> 0.5)。然后使用

将按钮约束到此guidline
 <Button
        android:id="@+id/gamepad_left_arrow"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/gamepad_left_arrow"
        android:textSize="18sp"
        app:layout_constraintEnd_toStartOf="@+id/guideline_vertical_in_center"
        android:layout_marginEnd="8dp"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintBottom_toTopOf="@+id/gamepad_right_stick"
        android:theme="@style/AppTheme.ButtonLight"
        android:layout_alignParentTop="true" />

    <Button
        android:id="@+id/gamepad_right_arrow"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/gamepad_right_arrow"
        android:textSize="20sp"
        app:layout_constraintStart_toStartOf="@+id/guideline_vertical_in_center"
        android:layout_marginStart="8dp"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintBottom_toTopOf="@+id/gamepad_left_stick"
        android:theme="@style/AppTheme.ButtonLight" />

,指南定义如下:

<android.support.constraint.Guideline
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/guideline_vertical_in_center"
        android:orientation="vertical"
        app:layout_constraintGuide_percent="0.5" />