我和朋友一起创建了一个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);