web-dev-qa-db-fra.com

Centre de mise en page de contraintes Android Alignement horizontal avec Textview et Imageview ne fonctionne pas

 I want like this

je veux mon textview et imageview comme image mentionnée ci-dessus.

1.Je souhaite définir Textview et Imageview horizontalement sur une seule ligne à l'aide de la disposition par contrainte.

2.Textview n'arrive pas au centre (centre) de la vue Image (positions gauche et droite)

3.Par ailleurs, la gravité de la mise en page ne permet pas de faire textview center, en raison de la mise en page Cosntraint

4. Aidez-moi à y parvenir.

Merci d'avance. 

  <Android.support.v7.widget.CardView
            Android:id="@+id/cv2"
            Android:layout_width="match_parent"
            Android:layout_height="wrap_content"
            Android:layout_gravity="center"
            app:cardCornerRadius="4dp"
            app:layout_constraintTop_toBottomOf="@+id/cv1">

            <Android.support.constraint.ConstraintLayout
                xmlns:app="http://schemas.Android.com/apk/res-auto"
                Android:layout_width="match_parent"
                Android:layout_height="wrap_content">

                <TextView
                    Android:id="@+id/title1"
                    Android:layout_width="0dp"
                    Android:layout_height="wrap_content"
                    Android:paddingLeft="10dp"
                    Android:text="Hero"
                    Android:textColor="@color/colorPrimary"
                    Android:textSize="16dp"
                    Android:textStyle="bold"
                    app:layout_constraintLeft_toLeftOf="parent"
                    app:layout_constraintRight_toLeftOf="@+id/display_pic"
                    />


                <ImageView
                    Android:id="@+id/display_pic"
                    Android:layout_width="80dp"
                    Android:layout_height="80dp"
                    Android:layout_alignParentEnd="true"
                    Android:layout_margin="16dp"
                    Android:adjustViewBounds="false"
                    Android:scaleType="centerCrop"
                    app:layout_constraintLeft_toLeftOf="@+id/title1"
                    app:layout_constraintRight_toRightOf="parent"
                    app:layout_constraintTop_toTopOf="parent"
                    app:srcCompat="@Android:color/holo_red_light" />


            </Android.support.constraint.ConstraintLayout>

</Android.support.v7.widget.CardView>
4
Kumar

Si vous voulez que ImageView soit affiché à droite du parent, supprimez cet attribut:

app:layout_constraintLeft_toLeftOf="@+id/title1"

Et si vous souhaitez aligner verticalement la TextView, ajoutez ces attributs:

app:layout_constraintTop_toTopOf="@id/display_pic"
app:layout_constraintBottom_toBottomOf="@id/display_pic"

Le xml avec les changements:

<?xml version="1.0" encoding="utf-8"?>
<Android.support.v7.widget.CardView
    Android:id="@+id/cv2"
    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="wrap_content"
    Android:layout_gravity="center"
    app:cardCornerRadius="4dp"
    app:layout_constraintTop_toBottomOf="@+id/cv1">

    <Android.support.constraint.ConstraintLayout
        xmlns:app="http://schemas.Android.com/apk/res-auto"
        Android:layout_width="match_parent"
        Android:layout_height="wrap_content">

        <TextView
            Android:id="@+id/title1"
            Android:layout_width="0dp"
            Android:layout_height="wrap_content"
            Android:paddingLeft="10dp"
            Android:text="Hero"
            Android:textColor="@color/colorPrimary"
            Android:textSize="16dp"
            Android:textStyle="bold"
            app:layout_constraintTop_toTopOf="@id/display_pic"
            app:layout_constraintBottom_toBottomOf="@id/display_pic"
            app:layout_constraintLeft_toLeftOf="parent"
            app:layout_constraintRight_toLeftOf="@+id/display_pic"/>


        <ImageView
            Android:id="@+id/display_pic"
            Android:layout_width="80dp"
            Android:layout_height="80dp"
            Android:layout_alignParentEnd="true"
            Android:adjustViewBounds="false"
            Android:scaleType="centerCrop"
            app:layout_constraintRight_toRightOf="parent"
            app:layout_constraintTop_toTopOf="parent"
            app:srcCompat="@Android:color/holo_red_light"/>

    </Android.support.constraint.ConstraintLayout>
</Android.support.v7.widget.CardView>

Résultat:

 Result

6
Juan Cruz Soler

Je suppose que c'est celui que vous voulez! voir l'image et commenter

 enter image description here

<?xml version="1.0" encoding="utf-8"?>
<Android.support.v7.widget.CardView
    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">

    <Android.support.constraint.ConstraintLayout
        Android:layout_width="match_parent"
        Android:layout_height="wrap_content"
        Android:padding="10dp">

        <ImageView
            Android:id="@+id/imageView2"
            Android:layout_width="wrap_content"
            Android:layout_height="wrap_content"
            app:layout_constraintBottom_toBottomOf="@+id/textView2"
            app:layout_constraintEnd_toEndOf="@+id/textView2"
            app:layout_constraintTop_toTopOf="@+id/textView2"
            app:srcCompat="@drawable/ic_favorite_border_black_24dp"
            tools:ignore="VectorDrawableCompat" />

        <TextView
            Android:id="@+id/textView2"
            Android:layout_width="wrap_content"
            Android:layout_height="wrap_content"
            Android:layout_marginStart="8dp"
            Android:text="TextView"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintStart_toEndOf="@+id/imageView2"
            app:layout_constraintTop_toTopOf="parent"
            Android:layout_marginLeft="8dp" />


    </Android.support.constraint.ConstraintLayout>


</Android.support.v7.widget.CardView>
1
Rizwan atta
<?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">

    <ImageView
        Android:id="@+id/imageView2"
        Android:layout_width="80dp"
        Android:layout_height="80dp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:srcCompat="@mipmap/ic_launcher" />

    <TextView
        Android:id="@+id/textView4"
        Android:layout_width="wrap_content"
        Android:layout_height="wrap_content"
        Android:text="Hero"
        Android:textColor="@color/colorPrimary"
        Android:textSize="16dp"
        Android:textStyle="bold"
        app:layout_constraintBottom_toBottomOf="@+id/imageView2"
        app:layout_constraintEnd_toEndOf="@+id/imageView2"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintStart_toStartOf="@+id/imageView2"
        app:layout_constraintTop_toTopOf="@+id/imageView2" />


</Android.support.constraint.ConstraintLayout>

Avec le code ci-dessus, vous pouvez conserver textview au centre de la vue de l’image. Pour positionner la vue de l’image, ajustez le biais vertical et horizontal. J'espère que cela t'aides.

1
SKG