3
votes

layout_centerInParent dans un RelativeLayout ne se concentre pas sur l'émulateur ou l'appareil

J'ai un fragment avec cette mise en page:

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical">

    <android.support.v7.widget.Toolbar
        android:layout_width="match_parent"
        android:layout_height="?attr/actionBarSize"
        android:id="@+id/toolbar"/>

    <FrameLayout
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:id="@+id/frame_layout">

    </FrameLayout>
</LinearLayout>

Dans l'aperçu d'Android Studio, je vois ceci:

 Entrez la description de l'image ici a>

Ce qui est bien, mais sur l'émulateur ou sur un appareil réel, je vois:

 Entrez la description de l'image ici

Que me manque-t-il? Comment centrer ce texte dans le parent?

La mise en page parent est le FrameLayout:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="My Fragment"
        android:textSize="30sp"
        android:layout_centerInParent="true"/>
</RelativeLayout>


5 commentaires

poster le fichier xml du parent également.


D'accord avec @RumitPatel. Essayez de vérifier si la balise parent a également android: layout_width = "match_parent"


poste xml complet.


Remplacez FrameLayout android: layout_width = "wrap_content" par android: layout_width = "match_parent"


Réglez simplement android: layout_width = "match_parent" sur fragmeLayout. et vous êtes prêt.


3 Réponses :


0
votes

Essayez d'ajouter ces propriétés:

 android:layout_centerHorizontal="true"
 android:layout_centerVertical="true"


4 commentaires

Merci mais j'ai le même comportement.


Cela ne fonctionnera pas car dans ce code, FrameLayout est android: layout_width = "wrap_content" . Vérifiez la réponse @Nilesh Rathod - c'est une bonne réponse


La disposition parentale n'a pas été ajoutée lorsque j'ai répondu à la question. @TamirAbutbul


Eh bien, que je ne savais pas



2
votes

Vous devez changer la largeur de votre FrameLayout final

Changez la largeur de votre FrameLayout en android: layout_width = "match_parent"

EXEMPLE DE CODE

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical">

    <android.support.v7.widget.Toolbar
        android:layout_width="match_parent"
        android:layout_height="?attr/actionBarSize"
        android:id="@+id/toolbar"/>

    <FrameLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/frame_layout">

    </FrameLayout>
</LinearLayout>


1 commentaires

Jamais pensé à la mise en page parent. match_parent a fait l'affaire. Merci beaucoup!



0
votes

Il y a une erreur dans votre disposition du cadre . Parcourez sa documentation pour lire les détails.

Corrigez la disposition du cadre dans le contenu XML parent:

<FrameLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id="@+id/frame_layout"/>


0 commentaires