设置ActionBar颜色时的Android UI故障

我和朋友一起创建了一个Android应用程序,我有一个与UI相关的奇怪问题.

当在片段之间切换时,有时UI倾向于加扰,从而产生下面显示的故障.

它发生在我的带有Dalvik运行时的Nexus 5和Android的股票以及我的朋友的带有ART运行时和SlimKat rom的Nexus 4上.但是在具有Dalvik运行时和4.4.2(AOSB rom)的另一个Nexus 5上无法观察到.奇怪的是,在我更新到应用程序的最新版本之前,它没有发生.

下面是使用的布局,其中main_fragment是我使用事务处理Fragment的地方.

我发现执行此行时会出现故障,并且我在setBackgroundDrawable方法中放置的内容无关紧要:

activity.getActionBar().setBackgroundDrawable(new ColorDrawable(Color.parseColor(getCurrentTheme(activity))));

还有人有这个问题吗?或者也许有人知道解决方法或如何使其工作?

编辑:我需要在运行时更改ActionBar颜色(在应用程序设置中更改主题).

最佳答案
几天前我在运行时将一个背景颜色应用到ActionBar时遇到了这个问题.这是在Nexus 5运行的Android 5.0版本上,我在本期回复中建议的解决方法取得了成功:Issue 1760

解决方法是在全局或发生此情况的特定活动中禁用Hardware Acceleration.还有一种可能性,即在运行时禁用View的硬件加速,但我不知道如何将其应用于ActionBar.

全局禁用硬件加速

AndroidManifest.xml中:

禁用活动的硬件加速

AndroidManifest.xml中:

禁用View的硬件加速

在运行时

myView.setLayerType(View.LAYER_TYPE_SOFTWARE,null);

相关文章

这篇“android轻量级无侵入式管理数据库自动升级组件怎么实现...
今天小编给大家分享一下Android实现自定义圆形进度条的常用方...
这篇文章主要讲解了“Android如何解决字符对齐问题”,文中的...
这篇文章主要介绍“Android岛屿数量算法怎么使用”的相关知识...
本篇内容主要讲解“Android如何开发MQTT协议的模型及通信”,...
本文小编为大家详细介绍“Android数据压缩的方法是什么”,内...