DrawerLayout 不适用于 Android 4.4 和 SurfaceView



今天我又经历了一次"android"时刻,这让我完全不知所措。

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

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

在4.1.2的三星S2和4.3的S3上,一切都很好,我可以看到绘制的SurfaceView,我可以通过滑动手势或主页按钮打开和关闭抽屉。然后我在安卓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();
}

最新更新