2015-07-01 35 views
3

我已經花了幾個小時試圖根據這個堆棧溢出後修復改變操作欄標題尺寸: Android Toolbar: small title text in landscape mode支持操作欄未應用我的風格?

不幸的是,它似乎無論我做什麼,關於動作條式的東西實際上不會應用。

我的風格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> 

我動作條的風格:

<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:命名空間,我試過使用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

嘗試這種方式:

  • 創建佈局爲你的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) 
    
相關問題