抽屉布局在Android 4.4和SurfaceView中无法工作

3
今天我又遇到了一个令我困惑的"安卓"时刻。
我的应用程序由一个DrawerLayout组成,其中包括一个RelativeLayout作为SurfaceView(surfaceViewContainer)的容器和第二个ViewGroup(RelativeLayout的子类)作为导航。
当应用程序启动时,在onCreate中我会填充布局并向surfaceViewContainer添加一个SurfaceView。
在4.1.2的三星S2和4.3的S3上都能正常工作。我可以看到绘制了SurfaceView,并且可以通过滑动手势或主页按钮打开和关闭抽屉。然后我在Nexus 5和Nexus 10上测试了Android 4.4,在两台设备上都无法显示出抽屉。即使按下主页按钮也不起作用。
更奇怪的是:我可以在添加SurfaceView之前打开Drawer,在这样做后,即使在Android 4.4上,我也可以与Drawer进行交互,因此打开/关闭就会起作用。
所以我的问题是:有人以前遇到过这样的情况吗?或者有什么建议或知道从Android 4.3到4.4发生了什么变化吗?
PS:我已经在其他应用程序中成功使用了DrawerLayout,只是没有使用SurfaceView,因此我认为问题出在这里。
谢谢。
1个回答

9

你是否尝试过在drawerLayout的drawerListener上实现onDrawerSlide,像这样:

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

成功了!我有一个全屏的SurfaceView渲染,抽屉在滑入时不会动画化,但这个问题已经解决了。谢谢! - Erik Živković
super.onDrawerSlide 无法解析...其他东西对我有用。 - Ketan Ahir
非常感谢你,伙计。你帮我解决了问题。我已经为这个问题苦恼了两天。重写 onDrawSlider 方法成功解决了它。 - N-JOY

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接