AppCompat 21 工具栏的问题
Problems with AppCompat 21 Toolbar
所以我从使用 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 使用这个主题:
<activity
android:name=".MainActivity"
android:theme="@style/AppTheme"
</activity>
我正在将工具栏添加到 Activity,如下所示:
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
Activity 正在扩展 ActionBarActivity
我还注意到在使用 AppCompat 库时所有内容都向上移动了一点。这是故意的吗?菜单按钮显示黑色,即使我选择了浅色主题。并且工具栏没有在其下方显示任何阴影,就像香草 material 那样。我该如何修复这些错误?
1.create 主题
<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.set 到 activity
<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);
这是我的结果
在使用 appcompact 库时你不应该这样使用 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>
所以我从使用 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 使用这个主题:
<activity
android:name=".MainActivity"
android:theme="@style/AppTheme"
</activity>
我正在将工具栏添加到 Activity,如下所示:
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
Activity 正在扩展 ActionBarActivity
我还注意到在使用 AppCompat 库时所有内容都向上移动了一点。这是故意的吗?菜单按钮显示黑色,即使我选择了浅色主题。并且工具栏没有在其下方显示任何阴影,就像香草 material 那样。我该如何修复这些错误?
1.create 主题
<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.set 到 activity
<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);
这是我的结果
在使用 appcompact 库时你不应该这样使用 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>