Android 可能透支:根元素在Theme.Holo中绘制背景
我读过关于这个问题的类似问题,但我在任何地方都找不到答案。为了解决透支问题,我使用以下方法:Android 可能透支:根元素在Theme.Holo中绘制背景,android,android-theme,Android,Android Theme,我读过关于这个问题的类似问题,但我在任何地方都找不到答案。为了解决透支问题,我使用以下方法: <style name="MyTheme" parent="@android:style/Theme.Holo"> <item name="android:windowBackground">@null</item> </style> @空的 当我在具有操作栏的活动中使用此选项时,操作栏的背景色也会更改为null。我怎样才能解决这个问题?如果
<style name="MyTheme" parent="@android:style/Theme.Holo">
<item name="android:windowBackground">@null</item>
</style>
@空的
当我在具有
操作栏的活动中使用此选项时,操作栏的背景色也会更改为null。我怎样才能解决这个问题?如果我将操作栏的颜色设置为分隔,蓝色分隔符将消失。如何将下面帧的背景设置为空,使其成为动作条分隔符?我建议如下:
<style name="MyTheme" parent="@android:style/Theme.Holo">
<item name="android:windowBackground">@null</item>
</style>
创建两个单独的主题:一个用于带操作栏的活动,另一个用于不带操作栏的活动
对于没有操作栏的活动,请使用您在帖子中提供的主题,即:
<style name="MyTheme" parent="@android:style/Theme.Holo">
<item name="android:windowBackground">@null</item>
</style>
活动的布局可能如下所示:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/black" // remove this
android:orientation="vertical" >
...
</LinearLayout>
...
我在上面的代码片段中指出了要删除哪一行
这有帮助吗?:) 用另一种方式解决透支问题。在android:windowBackground
中设置所需的背景,并从布局中删除背景。然后你会得到动作条的背景
不管怎样,使用空窗口背景是一个糟糕的解决方案,因为它会导致意外的副作用,比如渲染工件(或者在您的情况下缺少操作栏背景)。Chet Haase在以下章节中对此进行了详细解释:
避免空窗口背景
避免透支的一种技术是消除窗口背景
在层次结构中的视图都具有不透明
背景。也就是说,用户将看不到
窗口,如果视图层次结构完全覆盖了该背景
一个或多个不透明视图
消除窗口背景可能是一种有效的技术,但是
这往往是解决透支问题的一种复杂方法,而且通常
导致在不同情况下渲染工件。尽管如此
可以在应用程序清单中设置空窗口背景,
这可能会由于系统无法运行而导致图形瑕疵
正确绘制起始窗口。这是一种更正确的方法
将起始窗口背景保留在清单中的适当位置,
但是在活动的onCreate()方法中,通过调用
getWindow().setBackground(空)。但即使是这种方法也可能导致
人工制品例如,如果键盘/IME设置为调整大小和
然后为具有空背景的活动设置动画
在中设置动画时,可能是键盘后面的瑕疵,因为
窗口管理器没有为该背景绘制任何内容。也,
全屏ListView可能有过卷反弹间隙的工件
(可以与其他人一起工作)
setOverscrollFooter/Header())
解决这种情况下透支问题的正确方法是
实际使用起始窗口。而不是用带有
它们自己的不透明背景色介于窗口背景和
视图,将所需的背景可绘制视图放置在窗口本身上
windowBackground主题属性并允许那些介入
容器保持其默认的透明背景