出于某种原因,当我实现support-v7时,我无法使用style.xml设置操作栏的样式。
我有两个样式文件。这是来自values文件夹的style.xml:
<resources>
<color name="primary">#009688</color>
<color name="primaryDark">#00796B</color>
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="android:actionBarStyle">@style/myActionBar</item>
</style>
<style name="myActionBar" parent="Widget.AppCompat.Light.ActionBar.Solid.Inverse">
<item name="android:background">@color/primary</item>
</style>
</resources>
这个棒棒糖的样式来自于值-v21:
<resources>
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="android:colorPrimary">@color/primary</item>
<item name="android:colorPrimaryDark">@color/primaryDark</item>
</style>
</resources>
发生了什么:
1)默认情况下,我的应用程序从support-v7库实现android.support.v7.app.ActionBarActivity。当我启动时:
a)在Android 4.4操作栏上没有着色,它和以前一样黑暗。
b)在Android 5设备上,它没有着色,但状态栏变色。
因此,动作栏样式不适用于support-v7的栏。即使将全局textColor参数设置为明亮的,每个文本都会改变颜色,只有我的应用程序的标题保持白色。
但是,我仍然可以在代码中对其进行着色:getSupportActionBar().setBackgroundDrawable(new ColorDrawable(Color.parseColor("#673AB7")))
。
2)如果我为我的应用实现了android.app.Activity(而不是android.support.v7.app.ActionBarActivity):
a)棒棒糖装置获得整洁的绿色动作条和整洁的绿色状态栏。 b)但是4.4动作栏完全消失了。
我已经尝试使用主题标记上的values / style.xml中的这些样式参数来回复它,但它们都没有工作:
<item name="android:windowActionBar">true</item>
<item name="android:displayOptions">showTitle</item>
最小SDK设置为15。
如何在两个平台上设置样式操作栏?
答案 0 :(得分:1)
关注this guide:
1)所有活动都必须从ActionBarActivity扩展,ActionBarActivity从v4支持库的FragmentActivity扩展,因此您可以继续使用片段。
2)删除values-v21 / themes.xml并仅保留values / themes.xml
3)告诉Android使用工具栏作为ActionBar:
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
4)在style.xml中,替换
<style name="myActionBar" parent="Widget.AppCompat.Light.ActionBar.Solid.Inverse">
<item name="android:background">@color/primary</item>
</style>
带
<style name="myActionBar" parent="Widget.AppCompat.Light.ActionBar.Solid.Inverse">
<item name="android:background">@color/primary</item>
</style>
答案 1 :(得分:1)
只需将它们设置为values / style.xml
中的自定义基本主题即可 <item name="colorPrimary">@color/your_primary_color</item>
<item name="colorPrimaryDark">@color/your_primary_dark_color</item>
<item name="colorAccent">@color/your_accent_color</item>
<item name="windowActionBar">false</item>
<item name="android:windowActionBar">false</item>
<item name="android:windowNoTitle">true</item>
并使用android.support.v7.widget.Toolbar
。
请确保您使用的是支持库v21或更高版本。