web-dev-qa-db-fra.com

ConstraintLayout layout_constraintHorizontal_bias ne semble pas fonctionner

Ceci est mon fichier de mise en page.

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

Suivre la photo est une vue d'aperçu.

enter image description here

Je souhaite déplacer TextView vers center_horizontal vers la vue parent, mais layout_constraintHorizontal_bias=0.5" ne semble pas fonctionner.

Qui a des idées pour ce problème? Merci pour la première!

6
Cyrus

Essaye ça

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

[~ # ~] modifier [~ # ~]

pour utiliser bias vous devez le donner à n'importe quel parent.

enter image description here

4
Nilesh Rathod

Tout d'abord, si j'étais vous, je regarderais quelques guides expliquant la disposition des contraintes, car il semble que certains éléments clés vous manquent. ConstraintLayout

Lorsque cela est dit, votre problème est que vous demandez à votre mise en page de contraindre à un biais de 0,5 à rien. Votre textView n'est pas limité à autre chose que app:layout_constraintBottom_toTopOf="parent" Quel btw est un peu bizarre contraignant le bas de votre affichage de texte au haut de votre parent.

Pour que le biais fonctionne, il doit savoir quels éléments doivent être biaisés. Si vous voulez simplement qu'il soit au centre du parent, contraignez la vue de texte au parent comme suit:

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

De plus, à ce stade, vous n'aurez pas besoin du biais, je l'ai laissé, car vous pouvez ensuite l'utiliser pour le déplacer à d'autres pourcentages.

2
Jesper Purup

Essayez ceci:

app:layout_constraintHorizontal_bias="0.5" ne fonctionne pas car vous ne l'avez contraint à aucun parent. En savoir plus sur les biais.

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

Il n'y a pas besoin de biais car le biais est utilisé pour l'espacement entre les éléments car cela ne nécessite pas que l'on puisse se contraindre au parent de gauche à droite en bas et en haut

Merci

0
blackHawk