1
votes

Android Comment centrer le titre du top actionBar?

Pour commencer, mon objectif est de centrer mon titre. J'ai démarré un projet en sélectionnant le modèle d'activité de navigation du bas. Ceci est venu avec 3 fragments et une activité principale. J'essaie de centrer le titre de la barre d'action supérieure. J'ai essayé d'accéder au mobile_navigation par id et d'aligner le texte dans MainActivity mais cela ne semble pas fonctionner. J'ai également essayé d'ajouter un attribut textAlignment dans le homeFragment.xml mais cela n'a pas fonctionné non plus. Je ne trouve pas de scénario similaire. Personne ne sait comment pourrais-je résoudre ce problème?

mobile_navigation.xml:

android:gravity="center"

J'ai également tenté d'ajouter:

<?xml version="1.0" encoding="utf-8"?>
<navigation 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:id="@+id/mobile_navigation"
    app:startDestination="@+id/navigation_home">

    <fragment
        android:id="@+id/navigation_home"
        android:name="com.Example.exmaple.ui.home.HomeFragment"
        android:label="@string/app_name"
        tools:layout="@layout/fragment_home" />

    <fragment
        android:id="@+id/navigation_dashboard"
        android:name="com.Example.exmaple.ui.dashboard.DashboardFragment"
        android:label="@string/title_dashboard"
        tools:layout="@layout/fragment_dashboard" />

    <fragment
        android:id="@+id/navigation_notifications"
        android:name="com.Example.exmaple.ui.notifications.NotificationsFragment"
        android:label="@string/title_notifications"
        tools:layout="@layout/fragment_notifications" />
</navigation>

Tout commentaire est le bienvenu.


5 commentaires

cette réponse dans l'aide du lien? stackoverflow.com/questions/12387345/...


@MahmoudAbuElheja le 'getSupportActionBar ()' renvoie une erreur dans le fichier fragment.java


Changer votre titre d'activité


Eh bien, tout ce que j'essaye de faire


Je veux dire, ne fais pas de barre pour chaque fragment


4 Réponses :


0
votes

Essayez ci-dessous, le code peut fonctionner pour vous

getSupportActionBar().setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM); 
getSupportActionBar().setCustomView(R.layout.abs_layout);


1 commentaires

cela génère une erreur car getSupportActionBar ne peut pas être résolu



1
votes

Pour utiliser un titre personnalisé dans votre Barre d’outils , tout ce que vous devez faire est de vous rappeler que la Barre d’outils n’est qu’un groupe de vues sophistiqué afin que vous puissiez ajouter un titre personnalisé comme ceci:

Toolbar toolbarTop = (Toolbar) findViewById(R.id.toolbar_top);
TextView mTitle = (TextView) toolbarTop.findViewById(R.id.toolbar_title);

setSupportActionBar(toolbar);
mTitle.setText(toolbar.getTitle());

getSupportActionBar().setDisplayShowTitleEnabled(false);

Cela signifie que vous pouvez styliser le TextView comme vous le souhaitez car il ne s'agit que d'un TextView normal. Ainsi, dans votre activité, vous pouvez accéder au titre comme suit:

<android.support.v7.widget.Toolbar
    android:id="@+id/toolbar_top"
    android:layout_height="wrap_content"
    android:layout_width="match_parent"
    android:minHeight="?attr/actionBarSize"
    android:background="@color/action_bar_bkgnd"
    app:theme="@style/ToolBarTheme" >


     <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Toolbar Title"
        android:layout_gravity="center"
        android:id="@+id/toolbar_title" />


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


2 commentaires

Je devrais alors ajouter ceci dans le fragment? Ou changer le fragment XML en balises d'ouverture et de fermeture de la barre d'outils?


créez un fichier de mise en page pour la barre d'outils, puis incluez-le dans XML là où c'est nécessaire et vérifiez le code java mis à jour pour l'utiliser dans n'importe quel écran.



0
votes


0 commentaires

0
votes

J'ai pu trouver la solution. Je le posterai au cas où quelqu'un rencontrait ce problème.

J'ai ajouté ce qui suit au xml de l'activité principale:

android:theme="@style/AppTheme.NoActionBar"

J'ai également enlevé le haut de rembourrage de la balise d'ouverture androidx.constraintlayout.widget.ConstraintLayout dans l'activité principale XML

Ajout du style suivant à styles.xml:

<style name="AppTheme.NoActionBar" parent="AppTheme">
    <item name="windowNoTitle">true</item>
    <item name="windowActionBar">false</item>
</style>

Enfin, dans le manifeste Android, j'ai ajouté le thème suivant à l'activité principale: p >

<androidx.appcompat.widget.Toolbar
    android:id="@+id/toolBar"
    android:elevation="5dp"
    app:layout_constraintTop_toTopOf="parent"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@color/colorBlack">


    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="@color/colorTransparent"
        android:layout_alignParentStart="true"
        android:layout_gravity="start"
        android:text="@string/log_out"
        android:textAlignment="center"
        android:textColor="@color/lightblue"

        />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/app_name"
        android:textColor="@color/colorApp"
        android:textSize="20sp"/>

        <ImageButton
            android:layout_width="20dp"
            android:layout_height="20dp"
            android:src="@drawable/ic_add"
            android:tint="@color/lightblue"
            android:layout_alignParentEnd="true"
            android:layout_gravity="end"
            android:background="@color/colorBlack" />


</androidx.appcompat.widget.Toolbar>


0 commentaires