0

我有一个带有可见操作栏的普通活动(A),它启动另一个全屏活动(B)来显示照片。当 (B) 完成并显示活动 (A) 时,有时我可以看到以下图片:

操作栏和导航区域工件

请注意操作栏和导航区域的视觉失真。仅当我开始与活动交互、滚动活动等时,上述工件才会消失。

全屏活动代码:

protected void onCreate(Bundle savedInstanceState) {
    supportRequestWindowFeature(Window.FEATURE_NO_TITLE);
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);

    super.onCreate(savedInstanceState);

    ActionBar supportActionBar = getSupportActionBar();
    supportActionBar.hide();
}
  1. AndroidManifest.xml 中没有使用任何提示。
  2. 使用支持库 (appcompat)
  3. 转载于 Nexus 4、Android 5.0.1

我唯一的风格定制:

 <style name="Theme.MyApp" parent="@style/Theme.AppCompat" tools:ignore="NewApi">
    <!-- Text appearance -->
    <item name="android:textColorLink">@color/linkColor</item>
</style>

有人知道为什么会这样吗?

4

2 回答 2

2

这是 Lollipop Nexus 设备上的错误。作为解决方法,可以在清单活动的声明中禁用硬件加速:( android:hardwareAccelerated="false"这会降低图形性能)。

于 2015-04-08T09:39:24.000 回答
0

我的申请也遇到了同样的问题。但是,以下事情似乎解决了这个问题(在我的列表中):

 @Override
protected void onResume() {
    super.onResume();

    findViewById(R.id.root).setLayerType(View.LAYER_TYPE_SOFTWARE, null);
    new Handler().postDelayed(new Runnable() {
        @Override
        public void run() {
            findViewById(R.id.root).setLayerType(View.LAYER_TYPE_HARDWARE, null);
        }
    }, 500);
}

如您所见 - 我正在尝试关闭硬件加速,然后为布局中的主根视图再次打开它。我不知道为什么更改视图类型会起作用,因为您可以在HA Thread上找到:

注意:您目前无法在视图级别启用硬件加速。除了禁用硬件加速之外,视图层还有其他功能。有关其用途的更多信息,请参阅查看图层。

于 2015-04-08T11:28:12.803 回答