如上图所示,用AS仿做微信界面,自定义 actionBar时出了错误。
错误内容:
java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity.
代码展示:
自己定义的样式:
<style name="AppBaseTheme" parent="android:Theme.Holo.Light.DarkActionBar">
<item name="android:actionOverflowButtonStyle">@style/weixinActionOverflowButtonStyle</item>
</style>
<style name="weixinActionOverflowButtonStyle">
<item name="android:src">@drawable/actionbar_add_icon</item>
</style>
这一段没有问题,主要是原先的系统默认样式为:
style.xml
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
</style>
main.java
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
错误原因:
(截图来源于stackoverflow)
原因是你想要使用的样式是继承于 ActionBarActivity,可是原本要求的样式应该继承于 AppCompat
修改方法:
将 main.java 文件中的class 继承于 Activity即可!(如下:)
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
本文介绍了一种在Android开发中遇到的问题,即自定义ActionBar样式时出现的样式冲突,并提供了具体的解决方案。问题在于自定义样式与系统默认样式不匹配,通过调整Activity继承类解决了该问题。
4276

被折叠的 条评论
为什么被折叠?



