2015-07-01 2 views
3

Я проводил часы, пытаясь зафиксировать изменение размера заголовка панели действий в соответствии с этим переполнением стека поста: Android Toolbar: small title text in landscape modeПоддержка Action Bar, не применяющая мой стиль?

К сожалению, кажется, что независимо от того, что я делаю, все, что касается стиля ActionBar не будет на самом деле подать заявление.

Мои стили v14 файл:

<!-- Main theme --> 
<style name="MyTheme" parent="Theme.AppCompat"> 
    <item name="android:actionBarItemBackground">@drawable/selectable_background</item> 
    <item name="android:popupMenuStyle">@style/PopupMenu</item> 
    <item name="android:dropDownListViewStyle">@style/DropDownListView.MyTheme</item> 
    <item name="android:actionBarTabStyle">@style/ActionBarTabStyle.MyTheme</item> 
    <item name="android:actionDropDownStyle">@style/DropDownNav.MyTheme</item> 
    <item name="android:spinnerItemStyle">@style/Widget.MyTheme.TextView.SpinnerItem</item> 
    <item name="android:spinnerDropDownItemStyle">@style/Widget.MyTheme.DropDownItem</item> 
</style> 

Мои стили ActionBar:

<style name="Widget.MyTheme.ActionBar" parent="@style/Widget.AppCompat.ActionBar.Solid"> 
    <item name="android:background">@drawable/ab_solid</item> 
    <item name="android:titleTextStyle">@style/my_title_style</item> 
</style> 

<style name="my_title_style" parent="@style/TextAppearance.AppCompat.Widget.ActionBar.Title"> 
    <item name="textSize">20sp</item> 
</style> 

И, конечно же, "MyTheme" применяется в манифесте, а также - я даже пытался добавить его для всех отдельных видов деятельности, безрезультатно.

Кажется, что независимо от того, что я делаю, вещи просто не будут применяться. Я попытался удалить пространство android: namespace, я попытался использовать titleTextAppearance вместо titleTextStyle, я в основном эмулировал именно то, как это делают родительские темы, но ничего не изменит. Кто-нибудь знает, что происходит? Я недавно обновился до AppCompat, поэтому я не совсем понял, как все работает.

ответ

1

Вы должны использовать

<item name="background">@drawable/ab_solid</item> 
<item name="titleTextStyle">@style/my_title_style</item> 

для поддержки библиотеки совместимости в вашем стиле.

Прочитано Styling the Action Bar, раздел "For Android 2.1 and higher". Где это учитывая то, что вам нужно использовать две записи, как

<style name="CustomActionBarTheme" 
      parent="@style/Theme.AppCompat.Light.DarkActionBar"> 
     <item name="android:actionBarStyle">@style/MyActionBar</item> 

     <!-- Support library compatibility --> 
     <item name="actionBarStyle">@style/MyActionBar</item> 
    </style> 

Таким образом, ваш полный стиль будет

<style name="Widget.MyTheme.ActionBar" parent="@style/Widget.AppCompat.ActionBar.Solid"> 
    <item name="android:background">@drawable/ab_solid</item> 
    <item name="android:titleTextStyle">@style/my_title_style</item> 
    <item name="background">@drawable/ab_solid</item> 
    <item name="titleTextStyle">@style/my_title_style</item> 
</style> 
0

Я не знаю, если это все, что НУ сделали, но вы должны добавить этот код в манифесте (в деятельности вы хотите применить этот стиль):

<activity 
    android:name=".MyActivity" 
    android:label="@string/appName" 
    android:theme="@style/my_little_style" > 
</activity> 
0

Try таким образом:

  • Создание макета для вашего Toolbar и положил TextView:

    <?xml version="1.0" encoding="utf-8"?> 
    <android.support.v7.widget.Toolbar 
        xmlns:android="http://schemas.android.com/apk/res/android" 
        xmlns:app="http://schemas.android.com/apk/res-auto" 
        android:layout_height="?attr/actionBarSize" 
        android:layout_width="match_parent" 
        android:id="@+id/toolbar" 
        android:background="#b2b2b2"> 
    
        <TextView 
         android:layout_width="wrap_content" 
         android:layout_height="wrap_content" 
         android:layout_gravity="center" 
         android:id="@+id/toolbar_title" 
         android:textSize="20sp" 
         android:textColor="#ff282828"/> 
    
        </android.support.v7.widget.Toolbar> 
    
  • Включите layout в вашем .xml:

    <include layout="@layout/toolbar_activities" 
        android:id="@+id/toolbar_layout"/> 
    
  • Наконец установить заголовок в вашем java class:

    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar_layout); 
    
    TextView mTitle = (TextView) toolbar.findViewById(R.id.toolbar_title); 
    mTitle.setText("Your Title"); 
    setSupportActionBar(toolbar)