偏差属性被忽略
Bias attribute is ignored
我有一个简单的水平链接视图布局,具有 spread_inside 链样式。当我尝试使用 bias 属性将视图移动到所需位置时,我发现 bias 属性被忽略了。
布局供参考:
<android.support.constraint.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/white">
<View
android:id="@+id/view_1"
android:layout_width="50dp"
android:layout_height="50dp"
android:background="@android:color/black"
app:layout_constraintEnd_toStartOf="@id/view_2"
app:layout_constraintHorizontal_chainStyle="spread_inside"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<View
android:id="@+id/view_2"
android:layout_width="90dp"
android:layout_height="90dp"
android:background="@android:color/black"
app:layout_constraintEnd_toStartOf="@id/view_3"
app:layout_constraintStart_toEndOf="@id/view_1"
app:layout_constraintTop_toTopOf="parent" />
<View
android:id="@+id/view_3"
android:layout_width="80dp"
android:layout_height="80dp"
android:background="@android:color/black"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.2"
app:layout_constraintStart_toEndOf="@id/view_2"
app:layout_constraintTop_toTopOf="parent" />
</android.support.constraint.ConstraintLayout>
在这里,我想使用 layout_constraintHorizontal_bias 属性将 view_3 移近 view_2。我怎样才能做到这一点?
如果您在视图中使用 水平链,水平偏移 不起作用(因为您在同一轴上提供偏置,如果有水平链,则垂直偏置会起作用,反之亦然); 除非您想将它应用到您创建的链的头部视图(这是水平链中最左边的视图和垂直链中最顶层的视图);这不是你的情况,这里。 另外,仅当所选的链样式被包装时,链的头部视图上的偏置都可以工作。因此,您应该尝试找到其他解决方法来实现所需的UI 并忽略链 (此处).
的使用
更多信息,请参考:Build a Responsive UI with ConstraintLayout
希望我的回答对您有所帮助
您可以像这样更改第一个视图(链头视图):
<View
android:id="@+id/view_1"
android:layout_width="50dp"
android:layout_height="50dp"
android:background="@android:color/black"
app:layout_constraintEnd_toStartOf="@+id/view_2"
app:layout_constraintHorizontal_bias="0.1"
app:layout_constraintHorizontal_chainStyle="packed"
app:layout_constraintStart_toStartOf="parent" />
并通过 layout_constraintHorizontal_bias
设置所有链相对于父级的位置,但在链内这不起作用。
我有一个简单的水平链接视图布局,具有 spread_inside 链样式。当我尝试使用 bias 属性将视图移动到所需位置时,我发现 bias 属性被忽略了。
布局供参考:
<android.support.constraint.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/white">
<View
android:id="@+id/view_1"
android:layout_width="50dp"
android:layout_height="50dp"
android:background="@android:color/black"
app:layout_constraintEnd_toStartOf="@id/view_2"
app:layout_constraintHorizontal_chainStyle="spread_inside"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<View
android:id="@+id/view_2"
android:layout_width="90dp"
android:layout_height="90dp"
android:background="@android:color/black"
app:layout_constraintEnd_toStartOf="@id/view_3"
app:layout_constraintStart_toEndOf="@id/view_1"
app:layout_constraintTop_toTopOf="parent" />
<View
android:id="@+id/view_3"
android:layout_width="80dp"
android:layout_height="80dp"
android:background="@android:color/black"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.2"
app:layout_constraintStart_toEndOf="@id/view_2"
app:layout_constraintTop_toTopOf="parent" />
</android.support.constraint.ConstraintLayout>
在这里,我想使用 layout_constraintHorizontal_bias 属性将 view_3 移近 view_2。我怎样才能做到这一点?
水平偏移 不起作用(因为您在同一轴上提供偏置,如果有水平链,则垂直偏置会起作用,反之亦然); 除非您想将它应用到您创建的链的头部视图(这是水平链中最左边的视图和垂直链中最顶层的视图);这不是你的情况,这里。 另外,仅当所选的链样式被包装时,链的头部视图上的偏置都可以工作。因此,您应该尝试找到其他解决方法来实现所需的UI 并忽略链 (此处).
的使用更多信息,请参考:Build a Responsive UI with ConstraintLayout
希望我的回答对您有所帮助
您可以像这样更改第一个视图(链头视图):
<View
android:id="@+id/view_1"
android:layout_width="50dp"
android:layout_height="50dp"
android:background="@android:color/black"
app:layout_constraintEnd_toStartOf="@+id/view_2"
app:layout_constraintHorizontal_bias="0.1"
app:layout_constraintHorizontal_chainStyle="packed"
app:layout_constraintStart_toStartOf="parent" />
并通过 layout_constraintHorizontal_bias
设置所有链相对于父级的位置,但在链内这不起作用。