8

Sto tentando di aggiornare le mie app ActionBar nella barra degli strumenti, ma ho riscontrato qualche problema con la personalizzazione della barra degli strumenti per visualizzare un drawable personalizzato.La barra degli strumenti di supporto Android non visualizza correttamente il drawable personalizzato

quello che ho provato finora è quello di impostare il mio xml drawable nella barra degli strumenti, ma distrugge l'intera barra degli strumenti e si è trasferito il tasto menu verso il basso, dove non riesco a vedere correttamente:

Ecco la prima drawable:

bg_actionbar.xml

<?xml version="1.0" encoding="utf-8"?> 

<layer-list 
    xmlns:android="http://schemas.android.com/apk/res/android" > 
    <item android:drawable="@drawable/bg_gradient" /> 
    <item android:drawable="@drawable/icon_logo" /> 

</layer-list> 

bg_gradient è solo un'immagine gradiente 9patch e con la stessa icon_logo.

e per la mia barra degli strumenti:

<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/actionBar" 
     android:layout_width="match_parent" 
     android:layout_height="?attr/actionBarSize" 
     android:background="@drawable/bg_actionbar" 
     app:contentInsetEnd="0dp" 
     app:contentInsetStart="0dp"> 


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

questo spinge il mio tasto menu in basso e ha una distanza di circa 300dp a sinistra con l'icona rimpiccioliti in altezza.

Ora ho appena provato a cambiare direttamente lo sfondo direttamente nell'immagine png (bg_gradient) e succede la stessa cosa. Ho anche provato ad aggiungere un ImageView all'interno della Toolbar ma la stessa cosa distrugge l'intera ToolBar e ancora una volta mi sono perso su come personalizzare ulteriormente questa barra degli strumenti. Qualcuno ha l'idea? TIA.

UPDATE:

Ho provato ad aggiungere un layout lineare, sulla barra degli strumenti per contenere lo sfondo, ma ancora non visualizzare correttamente il mio fine:

<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/actionBar" 
     android:layout_width="match_parent" 
     android:layout_height="?attr/actionBarSize" 
     android:background="@color/cherry_red" 
     app:contentInsetEnd="0dp" 
     app:contentInsetStart="0dp"> 

     <LinearLayout 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:background="@drawable/bg_actionbar"/> 

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

Ecco cosa è successo:

enter image description here

Inoltre, ecco cosa mi aspettavo che fosse:

enter image description here

Icona dovrebbe essere sul centro, e l'immagine 9patch come gradiente da quando sto avendo problemi su XML ad avere una percentuale sulla metà e fine i colori di inizio e la navigationIcon dovrebbe essere in cima del gradiente.

+0

si può sapere quale tipo di barra degli strumenti si prevede di avere un'immagine di esempio sarà utile. –

+0

Ok, lo aggiungerò alla domanda tra un minuto. – KaHeL

+0

Salve @Rod_Algonquin, ha aggiunto l'immagine di esempio come richiesto. :) – KaHeL

risposta

3

Hey Penso che questo aiuta perché ho un app con qualcosa di simile

ToolBar achieve

mio xml è così :

<android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/custom_toolbar" android:layout_width="match_parent" android:layout_height="56dp" 
android:background="@drawable/actionbar_bg" > 

      <RelativeLayout android:id="@+id/toolbar_logo" 
      android:layout_width="140dp" android:layout_height="40dp" 
      android:background="@drawable/ic_logo" 
      android:layout_gravity="left|center_vertical" 
      android:clickable="true"> 

     </RelativeLayout> 

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

Mentre il drawable/actionbar_bg è così:

<?xml version="1.0" encoding="utf-8"?> 
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item> 
     <shape android:shape="rectangle"> 
      <gradient android:startColor="#FFFFFF" 
       android:endColor="#4093A3" 
       android:angle="90" /> 
     </shape> 
    </item> 
</layer-list> 

Spero che questo ti aiuta.

1

.Utilizzare

Gravity sul vostro interno View

Speranza che aiuta

2

Utilizzare l'XML di esempio di seguito per il layout

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

    <include layout="@layout/toolbar_home" 
     android:id="@+id/tool_bar" /> 

</LinearLayout> 

toolbar_home.xml

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    xmlns:android="http://schemas.android.com/apk/res/android"> 

    <android.support.v7.widget.Toolbar 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:background="@drawable/actionbar_icon_bg"/> 

    <ImageView android:layout_width="40dp" 
     android:layout_height="40dp" 
     android:src="@drawable/ic_launcher" 
     android:layout_centerInParent="true"/> 
</RelativeLayout> 

Nella vostra attività,

toolbar = (Toolbar) findViewById(R.id.tool_bar); 
    setSupportActionBar(toolbar); //or setActionBar(toolbar) 

Per ottenere l'icona di navigazione e roba

toolbar.setNavigationIcon(R.drawable.btn_main_nav_selector); 
    getSupportActionBar().setDisplayHomeAsUpEnabled(true); // or getActionBar().setDisplayHomeAsUpEnabled(true);