我正在使用V7 support library
,我想仅在某些活动中更改操作栏的高度。
这是我的styles.xml
:
<resources>
<style name="AppBaseTheme" parent="Theme.AppCompat.Light"></style>
<!-- Application theme. -->
<style name="AppTheme" parent="AppBaseTheme"></style>
<!-- here -->
<style name="Double_Action_Bar" parent="AppTheme">
<item name="actionBarStyle">@style/Double_Action_Bar_Style</item>
</style>
<style name="Double_Action_Bar_Style" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="height">@dimen/abc_action_bar_double_height</item>
<item name="android:height">@dimen/abc_action_bar_double_height</item>
</style>
</resources>
其中:
@dimen/abc_action_bar_double_height == 2 * @dimen/abc_action_bar_default_height
在我的清单文件中,我将其包括在内:
<application
android:name="com.myapp.App"
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name=".Splash"
android:label="@string/app_name"
android:theme="@style/Theme.AppCompat.Light.NoActionBar" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".Home"
android:label=""
android:theme="@style/Double_Action_Bar" /> <!-- here -->
但看起来.Home
的动作栏似乎没有改变。
如何使用AppCompat
编辑ActionBar高度?任何帮助将非常感激:)
谢谢。
答案 0 :(得分:0)
在styles.xml中
<!-- Define a base Theme that inherits from the one you want (dark, light, light with Dark action bar... -->
<style name="AppBaseTheme" parent="Theme.Base.AppCompat">
</style>
<!-- Create sub themes necessaries and edit the actionBar style for them -->
<style name="AppTheme1" parent="AppBaseTheme">
<item name="actionBarStyle">@style/ActionBarStyleBig</item>
</style>
<style name="AppTheme2" parent="AppBaseTheme">
<item name="actionBarStyle">@style/ActionBarStyleSmall</item>
</style>
<!-- Edit on any of them the height for actionBar -->
<style name="ActionBarStyleBig" parent="@style/Widget.AppCompat.ActionBar.Solid">
<item name="height">@dimen/bigActionBAr</item>
</style>
<style name="ActionBarStyleSmall" parent="@style/Widget.AppCompat.ActionBar.Solid">
<item name="height">@dimen/smallActionBar</item>
</style>
请注意在Api&lt; 11,高度指定为name =“height”但在api> 10中你需要使用name =“android:height”才能使其正常工作。这意味着您还需要在位于文件夹值-v11和values-v14(以及您可能拥有的任何其他styles.xml)的styles.xml中创建这些主题。
在你的清单中,只需使用你需要的主题:
<activity
android:name="com.example.myfirstapp.MainActivity"
android:label="@string/app_name"
android:theme="@style/AppTheme1" >
</activity>
<activity
android:name="com.example.myfirstapp.SecondActivity"
android:label="@string/title_activity_second"
android:theme="@style/AppTheme2>
请记住并重新检查您是否未在任何其他styles.xml中重写此设置
希望它有所帮助。我尝试过并且工作了。
答案 1 :(得分:0)
您应该使用actionBarSize
<style name="AppTheme1" parent="AppBaseTheme">
<item name="actionBarSize">@dimen/actionbar_height</item>
</style>