2015-02-27 8 views
6

Sto tentando di mostrare un titolo, utilizzando setTitle e una visualizzazione personalizzata nella barra degli strumenti.Titolo della barra degli strumenti con visualizzazione personalizzata

Non lo sto trattando come una barra di azione, invece come nient'altro che una vista.

sto aggiungendo sia i titoli e visualizzazione personalizzata in Java

toolbar = (Toolbar) view.findViewById(R.id.toolbar); 

    if (title != null) { 
     toolbar.setTitle(title); 
     toolbar.setTitleTextColor(getResources().getColor(android.R.color.white)); 
    } 

    if (subtitle != null) { 
     toolbar.setSubtitle(subtitle); 
     toolbar.setSubtitleTextColor(getResources().getColor(android.R.color.white)); 
    } 

    // Add switch view to toolbar 
    View switchView = LayoutInflater.from(getActivity()) 
      .inflate(R.layout.device_list_switch, null); 
    toolbar.addView(switchView); 

L'XML per mio punto di vista l'interruttore è

<RelativeLayout 
xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:background="@android:color/holo_blue_bright"> 


<TextView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignBottom="@+id/discoverable" 
    android:layout_alignParentBottom="true" 
    android:layout_alignTop="@+id/discoverable" 
    android:layout_toLeftOf="@+id/discoverable" 
    android:layout_toStartOf="@+id/discoverable" 
    android:gravity="center" 
    android:text="@string/discoverable_switch_label" 
    android:textColor="@android:color/white" 
    /> 

<Switch 
    android:id="@+id/discoverable" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentBottom="true" 
    android:layout_alignParentEnd="true" 
    android:layout_alignParentRight="true" 
    android:layout_marginLeft="@dimen/discoverable_switch_margin_left" 
    android:layout_marginStart="@dimen/discoverable_switch_margin_left"/> 

</RelativeLayout> 

Quello che succede è che il RelativeLayout riempie l'intera area della barra degli strumenti e il titolo non è visibile

Qualche idea?

risposta

-1

Se non si utilizza la barra degli strumenti come ActionBar, allora si potrebbe semplicemente utilizzare un layout.

Ho usato un LinearLayout invece di una barra degli strumenti.

Quali vantaggi offre Toolbar?

+1

Questo è un ottimo suggerimento. Sebbene l'uso della barra degli strumenti mi consenta di gonfiare facilmente un menu – Stephen

+1

MenuInflater menuInflater = next MenuInflater (contesto); menuInflater.inflate (R.menu.main, menu); – MikeWallaceDev

0

Questo può essere risolto aggiungendo il proprio titolo (e sottotitolo, se necessario) di visualizzazioni di testo all'interno della barra degli strumenti accanto alla visualizzazione personalizzata.

Ma forse un modo migliore è utilizzare una seconda barra degli strumenti annidata all'interno della prima. In questo modo, tutta la formattazione è gestita per te.

<android.support.v7.widget.Toolbar xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:id="@+id/topToolbar" 
    android:layout_alignParentTop="true" 
    android:layout_height="wrap_content" 
    android:layout_width="match_parent"> 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:orientation="horizontal"> 

     <android.support.v7.widget.Toolbar xmlns:app="http://schemas.android.com/apk/res-auto" 
      android:id="@+id/titleToolbar" 
      android:layout_width="wrap_content" 
      android:layout_height="match_parent" 
      app:contentInsetStart="0dp" 
      app:contentInsetLeft="0dp"> 
     </android.support.v7.widget.Toolbar> 

     <CustomView... /> 

    </LinearLayout> 

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