解决Toolbar使用Theme.AppCompat.Light.DarkActionBar主题时页面为Dark的bug。
当我们在使用Toolbar时,通常设置Toolbar为Dark(深黑色的),而页面为Light(亮色),给Activity设置为下面的Theme:1
2
3
4<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>
</style>
会发现整个Activity的主题是深暗色的,下面提供解决方案
将Toolbar放在AppBarLayout控件里面,就可以完美解决了。1
2
3
4
5
6
7
8
9
10
11
12<android.support.design.widget.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light" />
</android.support.design.widget.AppBarLayout>
如果你想修改样式,需要创建styles继承ThemeOverlay.AppCompat.Dark.ActionBar 和 ThemeOverlay.AppCompat.Light替换掉AppBarLayout->android:theme 和 Toolbar->app:popupTheme,也请注意如果你在style中设置了?attr/colorPrimary,你可能会得到一个不同的背景颜色。
参考链接:how-do-i-style-appcompat-v7-toolbar-like-theme-appcompat-light-darkactionbar