今天我又经历了一次"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();
}