2014-11-20 12 views
6

Jestem pewien, że jest to coś bardzo prostego, że właśnie przeoczyłem. Jeżeli ustawić tytuł w kodzie to wszystko wydaje się działać prawidłowo:Pasek narzędzi Appcompat "Android: title" atrybut nie działa

import android.support.v7.widget.Toolbar; 
... 
// Works fine 
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 
toolbar.setTitle("My Title"); 

Ustawienie go w xml układ nie działa:

<!-- Doesn't work --> 
<android.support.v7.widget.Toolbar 
    android:id="@+id/toolbar" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:background="?attr/colorPrimary" 
    android:minHeight="?attr/actionBarSize" 
    android:title="@string/my_title"/> 

Warto zauważyć używam biblioteki AppCompat v7 i testowanie na sdk w wersji dla Androida 18.

+0

Zaakceptuj odpowiedź, jeśli Twój problem został rozwiązany za pomocą jednej z poniższych odpowiedzi. Kopalnia została rozwiązana przez asnwer z @adneal –

Odpowiedz

8

Nie używasz poprawnego atrybutu. Myślę, że the Action Bar docs wyjaśnić to najlepiej. Atrybuty

<menu xmlns:android="http://schemas.android.com/apk/res/android" 
     xmlns:yourapp="http://schemas.android.com/apk/res-auto" > 

    <item android:id="@+id/action_search" 
      android:icon="@drawable/ic_action_search" 
      android:title="@string/action_search" 
      yourapp:showAsAction="ifRoom" /> 
    ... 
</menu> 

Korzystanie z biblioteki XML wsparcia

Zauważmy, że atrybut showAsAction powyżej używa niestandardowych nazw zdefiniowane w tagu. Jest to konieczne w przypadku korzystania z dowolnych atrybutów XML zdefiniowanych w bibliotece pomocy technicznej, ponieważ te atrybuty nie istnieją w środowisku systemu Android na starszych urządzeniach. Dlatego musisz użyć własnego obszaru nazw jako przedrostka dla wszystkich atrybutów zdefiniowanych przez bibliotekę pomocniczą.

Innymi słowy, trzeba zmienić android:title do yourCustomPrefix:title

<YourRootViewGroup xmlns:app="http://schemas.android.com/apk/res/org.seeingpixels.photon" 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    ... > 

    <android.support.v7.widget.Toolbar 
     android:id="@+id/toolbar" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:background="?attr/colorPrimary" 
     android:minHeight="?attr/actionBarSize" 
     app:title="@string/my_title" /> 

</YourRootViewGroup> 
-1

Korzystając follwing kod ustawić tytuł:

toolbar = (Toolbar) findViewById(R.id.toolbar); 
this.setSupportActionBar(toolbar); 
ActionBar actionBar = getSupportActionBar(); 
actionBar.setDisplayHomeAsUpEnabled(true); 
actionBar.setHomeButtonEnabled(true); 
1

można spróbować tego kodu?

Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 
setSupportActionBar(toolbar); 
getSupportActionBar().setDisplayShowTitleEnabled(true); 
getSupportActionBar().setTitle("title"); 
+1

zapisany mój dzień dzięki! – penduDev

Powiązane problemy