首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >设置ActionBar颜色时出现Android UI故障

设置ActionBar颜色时出现Android UI故障
EN

Stack Overflow用户
提问于 2014-04-12 21:21:41
回答 1查看 621关注 0票数 5

我和朋友们一起创建了一个Android应用程序,我有一个奇怪的问题与UI连接。

当在片段之间切换时,有时UI会变得混乱,从而产生一个小故障,如下图所示。

在我的nexus5上使用Dalvik运行时和股票Android,在我朋友的nexus4上使用ART运行时和SlimKat rom。但在另一款具有Dalvik运行时和4.4.2 (AOSB rom)的Nexus 5上看不到它。奇怪的是,在我更新到应用程序的最新版本之前,这种情况并没有发生。

下面是使用的布局,其中main_fragment是我在使用事务时放置Fragment的位置。

代码语言:javascript
复制
<?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方法中放了什么并不重要:

代码语言:javascript
复制
activity.getActionBar().setBackgroundDrawable(new ColorDrawable(Color.parseColor(getCurrentTheme(activity))));

还有其他人有这个问题吗?或者,也许有人知道一种变通方法或如何使其工作?

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

EN

回答 1

Stack Overflow用户

发布于 2014-12-22 11:10:02

几天前,我在运行时对ActionBar应用背景色时遇到了这个问题。这是在运行普通Android5.0的Nexus5上运行的,我成功地解决了这个问题的回复:Issue 1760

解决方法是全局禁用或针对发生此问题的特定活动禁用Hardware Acceleration。还有一种可能,那就是在运行时禁用View的硬件加速,但我不确定如何将其应用于ActionBar。

全局禁用硬件加速

AndroidManifest.xml

代码语言:javascript
复制
<application android:hardwareAccelerated="false" ...>

禁用活动的硬件加速

AndroidManifest.xml

代码语言:javascript
复制
<application android:hardwareAccelerated="true">
    <activity ... />
    <activity android:hardwareAccelerated="false" />
</application>

禁用View的硬件加速

运行时的

代码语言:javascript
复制
myView.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23030944

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档