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.
4 Réponses :
Essayez ci-dessous, le code peut fonctionner pour vous
getSupportActionBar().setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM); getSupportActionBar().setCustomView(R.layout.abs_layout);
cela génère une erreur car getSupportActionBar ne peut pas être résolu
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>
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.
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>
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