3 votes

RelativeLayout ne correspond pas à la largeur du parent dans une barre d'outils.

J'ai donc une barre d'outils personnalisée sur mon écran d'accueil, et dans cette barre d'outils, il y a une RelativeLayout . J'ai le layout width réglé sur match_parent et le parent de la disposition relative est juste la largeur de l'écran.

Pour une raison quelconque, il ne s'adapte pas à la largeur de l'écran car le bord gauche est éloigné du bord de l'écran. Je ne suis pas sûr de la raison de ce phénomène, mais il rend le positionnement dans la fenêtre de l'écran plus difficile. RelativeLayout un peu plus difficile.

C'est mon .xml

<android.support.v7.widget.Toolbar
    android:id="@+id/products_toolbar"
    android:layout_width="match_parent"
    android:layout_height="?attr/actionBarSize"
    android:background="@drawable/bg_gradient"
    app:layout_constraintStart_toStartOf="parent"
    app:titleTextColor="#000000">

    <RelativeLayout
        android:id="@+id/topRL"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:layout_editor_absoluteX="16dp">

        <TextView
            android:id="@+id/toolbar_title"
            android:layout_width="72sp"
            android:layout_height="37sp"
            android:layout_alignParentStart="true"
            android:layout_alignParentTop="true"
            android:layout_alignParentEnd="true"
            android:layout_marginStart="137dp"
            android:layout_marginTop="11dp"
            android:layout_marginEnd="159dp"
            android:fontFamily="@font/veganstyle"
            android:gravity="center"
            android:text="BL"
            android:textAlignment="center"
            android:textColor="#efefef"
            android:textSize="20dp"
            android:textStyle="bold" />

    </RelativeLayout>
</android.support.v7.widget.Toolbar>

Et voici une capture d'écran montrant ce dont je parle.

enter image description here

Comme vous pouvez le voir, la boîte bleue qui entoure l'élément RelativeLayout n'est pas au bord de l'écran, et il ne me laisse pas non plus l'amener au bord.

Ni le RelativeLayout ou son parent n'ont pas de rembourrage ou de marges, je ne comprends donc pas pourquoi c'est un problème et comment je peux le résoudre.

4voto

Loser Points 354

Vous devez définir l'attribut suivant dans votre fichier ToolBar

app:contentInsetLeft="0dp"
app:contentInsetStart="0dp"

Votre mise en page devrait donc ressembler à ce qui suit.

<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/products_toolbar"
    android:layout_width="match_parent"
    android:layout_height="?attr/actionBarSize"
    android:background="@color/colorPrimary"
    app:contentInsetLeft="0dp"
    app:contentInsetStart="0dp"
    app:titleTextColor="#000000">

    <RelativeLayout
        android:id="@+id/topRL"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <TextView
            android:id="@+id/toolbar_title"
            android:layout_width="72sp"
            android:layout_height="37sp"
            android:layout_centerInParent="true"
            android:text="BL"
            android:textAlignment="center"
            android:textColor="#efefef"
            android:textSize="20dp"
            android:textStyle="bold" />

    </RelativeLayout>
</android.support.v7.widget.Toolbar>

Voici ce que dit le documentation du développeur .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X