0

Ich versuche, eine Symbolleiste in einer App mit Navigationsleiste zu implementieren. Jetzt versuche ich den Titel meiner Toolbar für alle Fragmente zu zentrieren. Mein Problem ist, dass ich manchmal ein Symbol auf der rechten Seite des Hamburger-Symbols aus der Navigationsleiste habe, und ich habe ein App-Symbol auf der linken Seite der Symbolleiste. Um diese zusätzlichen Icons sichtbar zu machen, muss ich ein Relatives Layout verwenden, sonst würde das App-Icon auf der linken Seite fehlen.Center-Symbolleiste Titel in benutzerdefinierten Symbolleiste mit Symbolen und Navigationsleiste Umschaltfläche

Die XML meiner Tätigkeit mit der Symbolleiste wie folgt aussieht:

<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
xmlns:app="http://schemas.android.com/apk/res-auto" 
android:id="@+id/drawer_layout" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:background="@color/white" 
tools:context="app.activities.HomeActivity"> 

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

    <android.support.v7.widget.Toolbar 
     android:layout_height="wrap_content" 
     android:layout_width="match_parent" 
     android:id="@+id/home_toolbar" 
     android:minHeight="?attr/actionBarSize" 
     android:background="@color/white" 
     app:contentInsetStartWithNavigation="0dp"> 

     <RelativeLayout 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:orientation="vertical"> 

      <ImageView 
       android:id="@+id/search_toolbar_icon" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:paddingLeft="8dp" 
       android:paddingRight="8dp" 
       android:layout_alignParentLeft="true" 
       android:layout_alignParentStart="true" 
       android:layout_centerVertical="true" 
       android:src="@drawable/icon_search_hightlighted" /> 

      <ImageView 
       android:id="@+id/refresh_toolbar_icon" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:paddingLeft="8dp" 
       android:paddingRight="8dp" 
       android:layout_alignParentLeft="true" 
       android:layout_alignParentStart="true" 
       android:layout_centerVertical="true" 
       android:src="@drawable/icon_refresh" 
       android:visibility="gone"/> 

      <TextView 
       android:id="@+id/actionbar_title" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:layout_centerInParent="true" 
       android:text="@string/action_bar_title_home" 
       android:gravity="center" 
       android:textColor="@color/black" 
       android:textSize="18sp" /> 

      <ImageView 
       android:id="@+id/logo" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_centerVertical="true" 
       android:scaleType="centerCrop" 
       android:layout_alignParentRight="true" 
       android:src="@drawable/app_logo" /> 

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


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

<fragment 
    android:id="@+id/navigation_drawer" 
    android:name="app.fragments.NavigationDrawerFragment" 
    android:layout_width="@dimen/navigation_drawer_width" 
    android:layout_marginTop="?attr/actionBarSize" 
    android:layout_height="match_parent" 
    android:layout_gravity="start" 
    tools:layout="@layout/fragment_navigation_drawer" /> 

</android.support.v4.widget.DrawerLayout> 

ich die Sichtbarkeit der Symbolleiste auf der linken Seite auf gegangen oder sichtbar des ausgewählten Fragments abhängig. Weiß jemand, wie es möglich wäre, den Symbolleistentitel zu zentrieren und meine ImageViews weiterhin in meiner Symbolleiste sichtbar zu machen?

Vielen Dank im Voraus.

EDIT

My Toolbar Titel ist zur Zeit nicht zentriert. Es ist wie in dieser Frage positioniert: ToolBar title doesn't center

ich schon gelesen, dass es möglich wäre, es zu zentrieren, wenn die das relative Layout-weg sein würde und das Layout Schwere der Textview auf center_horizontal aber das funktioniert nicht für mich, weil mein ImageView der App nicht auf der rechten Seite der Symbolleiste erscheinen würde.

Antwort

0

Ich löste es so, dass jetzt:

<android.support.v7.widget.Toolbar 
    android:id="@+id/home_toolbar" 
    android:layout_width="match_parent" 
    android:layout_height="?attr/actionBarSize" 
    android:layout_gravity="center" 
    android:background="@color/white" 
    app:contentInsetEnd="0dp" 
    app:contentInsetLeft="0dp" 
    app:contentInsetRight="0dp" 
    app:contentInsetStart="0dp" 
    app:contentInsetStartWithNavigation="0dp"> 

    <ImageView 
     android:id="@+id/search_toolbar_icon" 
     android:layout_width="36dp" 
     android:layout_height="36dp" 
     android:src="@drawable/icon_search_hightlighted" /> 

    <TextView 
     android:id="@+id/actionbar_title" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center" 
     android:text="@string/action_bar_title_home" 
     android:textColor="@color/black" 
     android:textSize="18sp" /> 

    <ImageView 
     android:id="@+id/logo" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="end" 
     android:adjustViewBounds="true" 
     android:scaleType="centerCrop" 
     android:src="@drawable/nav_icon" 
     android:layout_marginEnd="10dp" 
     android:layout_marginRight="10dp" /> 

    <ImageView 
     android:id="@+id/refresh_toolbar_icon" 
     android:layout_width="36dp" 
     android:layout_height="36dp" 
     android:padding="8dp" 
     android:src="@drawable/icon_refresh" 
     android:visibility="gone" 
     tools:visibility="visible" /> 

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

Ich habe nicht genug Ruf zu kommentieren.

Ihre Frage ist mir etwas unklar. Wenn ich es richtig verstanden habe, hast du es bereits geschafft, den Titel zu zentrieren, aber wenn du die Sichtbarkeit der Bildansicht auf Null gesetzt hast, ist der Titel nicht mehr zentriert?

Wenn das richtig verstanden wird, haben Sie versucht, die Sichtbarkeit der imageViews auf unsichtbar zu setzen statt weg? Dabei belegt das imageView immer noch den gleichen Platz im Layout, ist aber für den Benutzer nicht sichtbar.

+0

ich die Frage bearbeitet und einen Link auf eine andere Frage hinzugefügt, die irgendwie zeigt, wie mein Titel positioniert ist. Es ist ein bisschen rechts vom Zentrum. – Distra

+0

Haben Sie es stattdessen mit einem FrameLayout versucht? Vielleicht gibt dir das die Kontrolle, die du brauchst, indem du den Ansatz verwendest, bei dem du erwähnt hast, dass du es funktionierst, aber das Bild auf der rechten Seite verschwand. –

0

versuchen Sie die folgende Eigenschaft für toolbar.

<android.support.v7.widget.Toolbar 
    xmlns:app="schemas.android.com/apk/res-auto" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:background="@color/primaryColor" 
    android:contentInsetLeft="0dp" 
    android:contentInsetStart="0dp" 
    app:contentInsetLeft="0dp" 
    app:contentInsetStart="0dp" 
    android:contentInsetRight="0dp" 
    android:contentInsetEnd="0dp" 
    app:contentInsetRight="0dp" 
    app:contentInsetEnd="0dp" /> 
+0

Wenn ich diesen Code hinzufüge, stimmt mein relatives Layout mit der ganzen Symbolleiste überein (was es vorher nicht gab), und der Titel sieht in der Vorschau zentriert aus, aber nicht in der App. – Distra

+0

Sie meinen, dass Änderungen in der App nicht gesehen haben? –

Verwandte Themen