在ConstraintLayout中使用時,我無法理解邊距的行爲(android:layout_margin*
)。邊距似乎只在某些情況下才起作用,我希望有人能向我解釋(或確認它是一個ConstraintLayout錯誤)。ConstraintLayout中的邊距行爲
我有以下的佈局...
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">
<View
android:id="@+id/leftView"
android:layout_width="0dp"
android:layout_height="100dp"
android:layout_marginEnd="20dp"
android:background="@android:color/holo_blue_dark"
app:layout_constraintEnd_toStartOf="@+id/rightView"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"/>
<View
android:id="@+id/rightView"
android:layout_width="100dp"
android:layout_height="100dp"
android:background="@android:color/holo_green_light"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent"/>
</android.support.constraint.ConstraintLayout>
...產生以下輸出...
然而,當我改變從leftView
至限rightView
...
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">
<View
android:id="@+id/leftView"
android:layout_width="0dp"
android:layout_height="100dp"
android:background="@android:color/holo_blue_dark"
app:layout_constraintEnd_toStartOf="@+id/rightView"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"/>
<View
android:id="@+id/rightView"
android:layout_width="100dp"
android:layout_height="100dp"
android:layout_marginStart="20dp"
android:background="@android:color/holo_green_light"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent"/>
</android.support.constraint.ConstraintLayout>
...保證金意外消失......
有人能解釋這是否是預期的行爲,如果是這樣,這是爲什麼?
好奇:layout_constraintEnd_toStartOf = 「@ + ID/rightView」'來:如果你還動'的應用程序,會發生什麼'rightView',通過'app:layout_constraintStart_toEndOf =「@ + id/leftView」'? – stkent
@stkent幾乎和第二種情況一樣。但在這種情況下,除非'LayoutWidth'被設置爲某個值,例如'100dp',否則'LeftView'將填充整個屏幕寬度。我也不明白這種行爲。 –