其他分享
首页 > 其他分享> > DrawerLayout无法使用Android 4.4和SurfaceView

DrawerLayout无法使用Android 4.4和SurfaceView

作者:互联网

今天我再次遇到了一个“机器人”时刻,这让我完全无能为力.

我有一个应用程序,它包含一个DrawerLayout,它包含一个RelativeLayout作为SurfaceView(surfaceViewContainer)的容器,另一个ViewGroup(RelativeLayout的子类)作为导航.

当应用程序启动时,在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,所以我认为问题就在那里.

谢谢

解决方法:

您是否曾尝试在drawerLayour的drawerListener上实现onDrawerSlide,就像这样

@Override
    public void onDrawerSlide(View drawerView, float slideOffset)
    {
        super.onDrawerSlide(drawerView, slideOffset);
        mDrawerLayout.bringChildToFront(drawerView);
        mDrawerLayout.requestLayout();
    }

标签:drawerlayout,android,android-4-4-kitkat,surfaceview,android-4-3-jelly-bean
来源: https://codeday.me/bug/20190722/1507737.html