首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

Android SupportActionBar 樣式設定完全指南

     編輯:程式設計綜合問答

使用 AppCompat 套件時,若直接套用傳統 android:actionBarStyle 往往無效,因為 Support Library 的 ActionBar 實作為 Toolbar,需透過 Theme 屬性 actionBarStyle(不帶 android 前綴)並指向 Widget.AppCompat.ActionBar 衍生樣式。

正確設定步驟

  1. 建立自訂 Theme 繼承 Theme.AppCompat.Light.DarkActionBar。
  2. 設定 actionBarStyle 指向自訂 ActionBar 樣式。
  3. 自訂 ActionBar 樣式繼承 Widget.AppCompat.ActionBar.Solid,覆寫 titleTextStyle、icon、background 等屬性。
  4. 在 Manifest 的 <activity> 或 <application> 套用該 Theme。

範例程式碼

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

<style name="MyActionBar" parent="Widget.AppCompat.ActionBar.Solid">
    <item name="titleTextStyle">@style/MyTitleText</item>
    <item name="icon">@drawable/ic_custom</item>
    <item name="background">@color/colorPrimary</item>
</style>

<style name="MyTitleText" parent="TextAppearance.AppCompat.Widget.ActionBar.Title">
    <item name="android:textSize">20sp</item>
    <item name="android:textColor">@android:color/white</item>
</style>

解決選單顯示為彈出視窗而非下拉選單

此行為由 actionButtonStyle 或 actionOverflowButtonStyle 控制。確保 Theme 繼承自 Theme.AppCompat 且未強制設定 android:actionMenuPresenter。若仍異常,檢查 toolbar 布局中 app:popupTheme 是否正確指向 ThemeOverlay.AppCompat.Light。

關鍵差異提醒

屬性名稱適用範圍
android:actionBarStyle原生 ActionBar (API 11+)
actionBarStyleSupport Library Toolbar/ActionBar

務必使用不帶 android: 前綴的屬性,才能在 AppCompat 環境生效。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved