DrawerLayout无法使用Android 4.4& SurfaceView

时间:2014-01-07 15:57:29

标签: android surfaceview android-4.4-kitkat android-4.3-jelly-bean drawerlayout

今天我又有了一次“机器人”时刻,这让我完全无能为力。

我有一个应用程序,它包含一个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,所以我认为问题出在那里。

由于

1 个答案:

答案 0 :(得分:9)

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

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