web-dev-qa-db-ja.com

水平方向の重みに関するConstraintLayoutの問題

次のxmlレイアウトを検討してください。

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

    <Button
        Android:id="@+id/b1"
        Android:layout_width="0dp"
        Android:layout_height="wrap_content"
        Android:text="B1"
        app:layout_constraintHorizontal_weight="1"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toLeftOf="@+id/b2"/>

    <Button
        Android:id="@+id/b2"
        Android:layout_width="wrap_content"
        Android:layout_height="wrap_content"
        Android:text="B2"
        app:layout_constraintLeft_toRightOf="@+id/b1"
        app:layout_constraintRight_toLeftOf="@id/b3"/>

    <Button
        Android:id="@+id/b3"
        Android:layout_width="wrap_content"
        Android:layout_height="wrap_content"
        Android:text="B3"
        app:layout_constraintLeft_toRightOf="@+id/b2"
        app:layout_constraintRight_toRightOf="parent"/>
</Android.support.constraint.ConstraintLayout>

これは私が望むものであるこのレイアウトを生成します:

enter image description here

しかし、B3をなくなったとマークすると、B1の幅は0に設定され、B2は左に移動します。 B2がB3の代わりになり、B1が拡張するようにしたいのに対して:

enter image description here

私が間違っているかもしれない何か考えはありますか?

7
M-WaJeEh

b2にAndroid:layout_width = "0dp"app:layout_constraintHorizontal_weight="1"を設定すると、準備が整います。

編集:B2からapp:layout_constraintRight_toLeftOf="@id/b3"を削除するだけです。

6
Praneet Pabolu