DrawerLayout 不适用于 Android 4.4 和 SurfaceView

2023-11-30

今天我又经历了“机器人”时刻之一,这让我完全一无所知。

我有一个由 DrawerLayout 组成的应用程序,其中包含一个作为 SurfaceView (surfaceViewContainer) 容器的相对布局和作为导航的第二个 ViewGroup(相对布局的子类)。

当应用程序启动时,在 onCreate 中,我会膨胀布局并将 SurfaceView 添加到 surfaceViewContainer。

在配备 4.1.2 的三星 S2 和配备 4.3 的 S3 上,一切正常,我可以看到绘制的 SurfaceView,并且可以通过滑动手势或主页按钮打开和关闭抽屉。然后我在 Android 4.4 上使用 Nexus 5 和 Nexus 10 进行了测试,在这两种设备上抽屉都不会出现。即使按主页按钮也无济于事。

更奇怪的是:我可以在添加 SurfaceView 之前打开抽屉,当我这样做时,即使在添加 SurfaceView 之后我也可以与抽屉交互,即使在 Android 4.4 上也是如此,所以打开/关闭就可以了。

所以我的问题是:有人以前经历过类似的事情或者有一些建议或者知道从 Android 4.3 到 4.4 可能发生了什么变化?!

ps:我已经在其他应用程序中成功使用了 DrawerLayout,只是没有在 SurfaceView 中使用,所以我认为问题就在那里。

Thanks


您是否尝试过在抽屉Layour的drawerListener上使用实现onDrawerSlide,如下所示

@Override
    public void onDrawerSlide(View drawerView, float slideOffset)
    {
        super.onDrawerSlide(drawerView, slideOffset);
        mDrawerLayout.bringChildToFront(drawerView);
        mDrawerLayout.requestLayout();
    }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

DrawerLayout 不适用于 Android 4.4 和 SurfaceView 的相关文章

随机推荐