2017-07-25 99 views
1

我想把我的白色按鈕放在屏幕中心,並帶有這樣的約束。 1.在父邊緣之間水平居中,並可能會留下一些空白。 2.頂部父母和棍子按鈕之間垂直居中。 現在我的佈局是這樣的圖像約束佈局中心兩個按鈕水平,邊距小,垂直居中

enter image description here

好吧,我想我可以把一些本的FrameLayout按鈕,然後約束它,但這似乎是壓倒性添加另一個佈局。我已經爲D-Pad和XAYB添加了下一個FrameLayout,甚至RelativeLayout似乎是使用ConstraintLayout的矛盾,其目的是防止許多佈局如線性,相對,幀佈局的深層嵌套。

回答

5

好吧,我解決了這個問題,通過在屏幕的水平中間添加垂直指引 使用(50%=> 0.5)。然後約束按鈕這個理念爲指導與

<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" />