web-dev-qa-db-ja.com

ConstraintLayout layout_constraintHorizo​​ntal_biasが機能していないようです

これは私のレイアウトファイルです。

<?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"
    xmlns:tools="http://schemas.Android.com/tools"
    Android:layout_width="match_parent"
    Android:layout_height="match_parent">
    <EditText
        Android:layout_width="150dp"
        Android:layout_height="50dp"
        Android:hint="please input test content"
        Android:inputType="phone"
        Android:textColorHint="@Android:color/holo_red_light"
        Android:textSize="13sp"
        app:layout_constraintBottom_toTopOf="parent"
        app:layout_constraintRight_toLeftOf="parent" />
    <TextView
        Android:layout_width="80dp"
        Android:layout_height="50dp"
        Android:gravity="center"
        Android:text="Hello"
        Android:textColor="@Android:color/black"
        app:layout_constraintBottom_toTopOf="parent"
        app:layout_constraintHorizontal_bias="0.5" />
</Android.support.constraint.ConstraintLayout>

フォロー写真はプレビュービューです。

enter image description here

TextViewをcenter_horizo​​ntalから親ビューに移動したいのですが、layout_constraintHorizontal_bias=0.5"が機能していないようです。

誰がこの問題のアイデアを持っていますか?最初にありがとう!

6
Cyrus

これを試して

<?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"
    xmlns:tools="http://schemas.Android.com/tools"
    Android:layout_width="match_parent"
    Android:layout_height="match_parent">


    <EditText
        Android:id="@+id/editText2"
        Android:layout_width="wrap_content"
        Android:layout_height="wrap_content"
        Android:layout_marginBottom="16dp"
        Android:ems="10"
        Android:hint="please input test content"
        Android:inputType="phone"
        Android:textColorHint="@Android:color/holo_red_light"
        Android:textSize="13sp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent" />

    <TextView
        Android:layout_width="80dp"
        Android:layout_height="50dp"
        Android:gravity="center"
        Android:text="Hello"
        Android:textColor="@Android:color/black"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintHorizontal_bias="0.5"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

</Android.support.constraint.ConstraintLayout>

[〜#〜]編集[〜#〜]

biasを使用するには、それを任意の親に制限する必要があります。

enter image description here

4
Nilesh Rathod

まず、あなたがいくつかの重要な要素を欠いているように見えるので、私があなたが制約レイアウトを説明するいくつかのガイドを見るとしたら、 ConstraintLayout

それが言われるとき、あなたの問題はあなたが0.5のバイアスで何にも制約しないようにあなたのレイアウトを求めているということです。 textViewはapp:layout_constraintBottom_toTopOf="parent"以外に制限されていません。どちらがテキストビューの下部を親の上部に制限するかは少し変わっています。

バイアスが機能するためには、どの要素にバイアスをかけるかを知る必要があります。単純に親の中心にしたい場合は、次のようにテキストビューを親に制限します。

<TextView
    Android:layout_width="80dp"
    Android:layout_height="50dp"
    Android:gravity="center"
    Android:text="Hello"
    Android:textColor="@Android:color/black"
    app:layout_constraintTop_toTopOf="parent"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintRight_toRightOf="parent"
    app:layout_constraintLeft_toLeftOf="parent"
    app:layout_constraintHorizontal_bias="0.5" />

また、その時点ではバイアスは必要ありません。他のパーセンテージで移動するために使用できるので、私はそれを残しました。

2
Jesper Purup

これを試してください:

app:layout_constraintHorizontal_bias="0.5"は、親に制限していないため機能しません。 バイアスについての詳細を読んでください。

enter image description here

<?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"
    xmlns:tools="http://schemas.Android.com/tools"
    Android:layout_width="match_parent"
    Android:layout_height="match_parent">


    <TextView
        Android:layout_width="80dp"
        Android:layout_height="50dp"
        Android:gravity="center"
        Android:text="Hello"
        Android:textColor="@Android:color/black"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintHorizontal_bias="0.5"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

    <EditText
        Android:id="@+id/editText2"
        Android:layout_width="150dp"
        Android:layout_height="50dp"
        Android:layout_marginBottom="16dp"
        Android:ems="10"
        Android:hint="please input test content"
        Android:inputType="phone"
        Android:textColorHint="@Android:color/holo_red_light"
        Android:textSize="13sp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent" />
</Android.support.constraint.ConstraintLayout>
2
Vishva Dave

要素間の間隔に使用されるバイアスとしてのバイアスは必要ありません。左右の下部と上部からペアレントに制約する必要がないためです。

ありがとう

0
blackHawk