我和朋友们一起创建了一个Android应用程序,我有一个奇怪的问题与UI连接。
当在片段之间切换时,有时UI会变得混乱,从而产生一个小故障,如下图所示。

在我的nexus5上使用Dalvik运行时和股票Android,在我朋友的nexus4上使用ART运行时和SlimKat rom。但在另一款具有Dalvik运行时和4.4.2 (AOSB rom)的Nexus 5上看不到它。奇怪的是,在我更新到应用程序的最新版本之前,这种情况并没有发生。
下面是使用的布局,其中main_fragment是我在使用事务时放置Fragment的位置。
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<FrameLayout
android:id="@+id/main_fragment"
android:layout_width="match_parent"
android:layout_height="match_parent" >
</FrameLayout>
</RelativeLayout>我发现这行代码在执行时出现了小故障,我在setBackgroundDrawable方法中放了什么并不重要:
activity.getActionBar().setBackgroundDrawable(new ColorDrawable(Color.parseColor(getCurrentTheme(activity))));还有其他人有这个问题吗?或者,也许有人知道一种变通方法或如何使其工作?
编辑:我需要在运行时更改ActionBar颜色(在应用程序设置中更改主题)。
发布于 2014-12-22 11:10:02
几天前,我在运行时对ActionBar应用背景色时遇到了这个问题。这是在运行普通Android5.0的Nexus5上运行的,我成功地解决了这个问题的回复:Issue 1760
解决方法是全局禁用或针对发生此问题的特定活动禁用Hardware Acceleration。还有一种可能,那就是在运行时禁用View的硬件加速,但我不确定如何将其应用于ActionBar。
全局禁用硬件加速
AndroidManifest.xml
<application android:hardwareAccelerated="false" ...>禁用活动的硬件加速
AndroidManifest.xml
<application android:hardwareAccelerated="true">
<activity ... />
<activity android:hardwareAccelerated="false" />
</application>禁用View的硬件加速
运行时的
myView.setLayerType(View.LAYER_TYPE_SOFTWARE, null);https://stackoverflow.com/questions/23030944
复制相似问题