今天我又有了一次“机器人”时刻,这让我完全无能为力。
我有一个应用程序,它包含一个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,所以我认为问题出在那里。
由于
答案 0 :(得分:9)
您是否曾尝试在drawerLayour的drawerListener上使用onDrawerSlide,就像这样
@Override
public void onDrawerSlide(View drawerView, float slideOffset)
{
super.onDrawerSlide(drawerView, slideOffset);
mDrawerLayout.bringChildToFront(drawerView);
mDrawerLayout.requestLayout();
}