所以我从使用Material主题更改为AppCompat以支持非Lollipop设备,我在使用AppCompat工具栏时遇到了一些问题。 首先,工具栏不使用原色:
<android.support.v7.widget.Toolbar
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="?attr/colorPrimary"/>
主要颜色设置为:
<style name="AppTheme" parent="Theme.Base"/>
<style name="Theme.Base" parent="Theme.AppCompat.Light">
<item name="android:colorPrimary">@color/primary</item>
<item name="android:colorPrimaryDark">@color/primary_dark</item>
<item name="android:colorAccent">@color/accent</item>
<item name="windowActionBar">false</item>
<item name="android:windowNoTitle">true</item>
</style>
我正在将此主题用于我的活动:
<activity
android:name=".MainActivity"
android:theme="@style/AppTheme"
</activity>
我将工具栏添加到Activity中,如下所示:
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
活动正在扩展ActionBarActivity
此外,我注意到使用AppCompat库时所有内容都向上移动了一些。这是故意的吗?菜单按钮显示黑色,即使我选择了浅色主题。并且工具栏不会在其下方显示任何阴影,就像人们想要的香草材料一样。我该如何解决这些错误?
答案 0 :(得分:3)
1.创建主题
<style name="AppBaseTheme" parent="Theme.AppCompat.Light"></style>
<style name="AppTheme2" parent="AppTheme.Base">
<item name="colorPrimary">@color/ColorPrimary</item>
<item name="colorPrimaryDark">@color/ColorPrimaryDark</item>
</style>
2.将其设置为活动
<activity
android:name="OtherApp"
android:theme="@style/AppTheme2" >
</activity>
<android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/ColorPrimary"
android:theme="@style/ThemeOverlay.AppCompat.Dark"
android:elevation="4dp">
</android.support.v7.widget.Toolbar>
toolbar = (Toolbar) findViewById(R.id.tool_bar);
setSupportActionBar(toolbar);
这是我的结果
答案 1 :(得分:1)
使用appcompat库时,你不应该使用这个android:colorPrimary
,它应该是colorPrimary
你的风格似乎有问题
<style name="AppTheme" parent="Theme.Base"/>
<style name="Theme.Base" parent="Theme.AppCompat.Light">
<item name="android:colorPrimary">@color/primary</item>
<item name="android:colorPrimaryDark">@color/primary_dark</item>
<item name="android:colorAccent">@color/accent</item>
<item name="windowActionBar">false</item>
<item name="android:windowNoTitle">true</item>
</style>
将其更改为
<style name="AppTheme" parent="Theme.Base"/>
<style name="Theme.Base" parent="Theme.AppCompat.Light">
<item name="colorPrimary">@color/primary</item>
<item name="colorPrimaryDark">@color/primary_dark</item>
<item name="colorAccent">@color/accent</item>
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>
</style>