3

今天我再次遇到了那些「安卓」時刻之一,這讓我完全無能爲力。DrawerLayout不能與Android 4.4和SurfaceView兼容

我有一個由DrawerLayout組成的應用程序,它包含一個作爲導航的SurfaceView(surfaceViewContainer)和第二個ViewGroup(RelativeLayout的子類)的容器的RelativeLayout。

當應用程序啓動時,在onCreate中充氣佈局並將SurfaceView添加到surfaceViewContainer。

在4.1.2上的三星S2和4.3上的S3一切正常,我可以看到SurfaceView繪製,我可以通過滑動手勢或主頁按鈕打開和關閉抽屜。然後,我使用Nexus 5和Nexus 10在Android 4.4上進行了測試,在兩個設備上抽屜都不會出現。即使按主頁按鈕也不會做任何事情。

即使是陌生人:我可以在添加SurfaceView之前打開抽屜,當我這樣做時,即使在Android 4.4上添加SurfaceView後,我仍然可以與抽屜進行交互,因此打開/關閉工作。

所以我的問題:任何人經歷過這樣的事情,或有一些建議或知道可能已經從Android 4.3更改爲4.4?!

ps:我已經在其他應用程序中成功使用過DrawerLayout,只是沒有使用SurfaceView,所以我認爲問題在於此。

感謝

回答

9

您是否嘗試過使用在drawerLayour的drawerListener實施onDrawerSlide這樣

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

它的工作!我有一個全屏幕SurfaceView渲染和抽屜不會在滑入時動畫,但是這解決了它。謝謝! –

+0

'super.onDrawerSlide'無法解析..其他事情爲我工作。 –

+0

非常感謝您的支持。你爲我做了。過去兩天我一直在爲這個問題苦苦掙扎。覆蓋onDrawSlider方法釘住了它。 –