使用ActionBar,调整Theme时遇到You need to use a Theme.AppCompat theme (or descendant) with this activity解决方法
16lz
2021-01-25
今天在写一个ActionBar时,想把标题颜色改成白色,以匹配app的风格,默认是黑色的:
这种黑色的标题栏,原因是因为清单文件AndroidManifest.xml中,默认配置的风格是:android:theme="@style/AppTheme"
于是我开始尝试更换这个主题;最开始找了几个类似于@android:style/Theme.Light的系统自带的Light模式的主题,但是运行起来发现都会报异常:
java.lang.IllegalStateException:YouneedtouseaTheme.AppCompattheme(ordescendant)withthisactivity
原因是,为了兼容性,我没有使用系统的ActionBar,而是使用的兼容性包V7包中的actionbar:android.support.v7.app.ActionBar,于是导致无法匹配一般Android系统的主题,提示我们需要使用Theme.AppCompat主题或者其子类主题,经过一番查找,发现如下几个主题是可用的:
@style/Theme.AppCompat ,@style/Theme.AppCompat.Light,@style/Theme.AppCompat.Light.DarkActionBar
其中,在使用了@style/Theme.AppCompat.Light之后,达到了想要的效果,问题解决:
更多相关文章
- Android(安卓)Studio如何去掉丑陋的标题栏//values文件夹结构的
- android Activity setTheme() 更改主题
- Android中实现应用切换主题机制
- 解决 :android studio 提交代码到git/github失败 Could not read
- Android硬件加速的一些问题和错误
- 基于android样式与主题(style&theme)的详解
- 重新认识一下Android(安卓)的Theme与Style
- Android异常01----No package identifier when getting name for
- Android样式和主题(一):简介