【问题标题】:Setting android:windowBackground to @null makes scrolling to smear?将 android:windowBackground 设置为 @null 会导致滚动涂抹?
【发布时间】:2012-08-22 11:01:29
【问题描述】:

我正在使用 sherlock 操作栏库来支持许多设备。我有一个viewPager,它有 3 个片段:

  • 一个带有listView,每个项目都有一个textView和一个imageView
  • 第二个有一个gridView,每个项目都有一个textView和一个imageView
  • 第三个现在只有一个textView

正如我在 google IO 视频中听到的那样(并且因为 Lint 告诉我),建议在所有活动中使用下一个样式:

<resources xmlns:android="http://schemas.android.com/apk/res/android">

  <style name="AppTheme" parent="@style/Theme.Sherlock">
    <item name="android:windowBackground">@null</item>
  </style>

</resources>

这在许多设备上都对我有用。

但是,在模拟器上,使用版本 2.3.3 和 Galaxy nexus 上,当我滚动(viewPager 或任何adapterViews)时,一切都只是涂抹,所以我得到很多白色像素好像什么都没有刷新一样。

我什至尝试为我的所有 adapterViews 设置 android:cacheColorHint="#00000000",但它仍然会发生。

发生了什么事?我该如何解决这个问题?我喜欢添加上述内容,因为它消除了每个应用程序出现的 Galaxy S3 丑陋的渐变背景。

【问题讨论】:

  • 纯黑色背景怎么样?
  • 它写了一个错误:“错误:颜色类型不允许(在'android:windowBackground',值为'#ff000000'......”,所以我欺骗了编译器并给它一个颜色从 res 文件夹中,然后它起作用了,但我不记得这个建议的原因是什么,所以我不确定这是否有帮助。我只记得那个罗曼人是那个讲课的人。不管怎样,你为什么不发表你的答案而不是发表评论?
  • 嗯,你更清楚你在那里做了什么以获得坚实的背景,所以 IMO 你应该写下你所做的作为答案:)
  • 我不确定它是否有帮助,因为我不记得这个优化有什么作用。我认为删除/设置活动背景比为布局本身设置更好。

标签: android android-adapterview


【解决方案1】:

如果你用其他东西覆盖它,你应该只将背景设置为 nul。任何一个: - 在主题中将背景设置为 null 并在布局中添加新背景 要么 - 将主题中的背景设置为您想要的颜色/图像。

【讨论】:

  • 顺便说一句,为什么将listView和窗口的背景都设置为null会导致出现奇怪的拖影?
  • 因为你没有背景所以Android不会清窗。
  • 当您说“不清除窗口”时,它与 glClear 有什么关系?我认为有要使用的窗口的默认颜色。
  • 有一个默认颜色,但是当您将背景设置为 null 时,您会告诉 Android 不要使用它并且不要绘制任何东西。
  • 为什么只影响部分设备,而且只影响adapterView(至少我看到的是这样)?
猜你喜欢
  • 1970-01-01
  • 2013-05-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-01-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多