2013-05-20 74 views
9

我想知道是否有任何方式從支持庫ActionBarSherlock使用新DrawerLayout? 我找到了解決辦法ICS +,但我需要的是針對Android 2.2+ 支持的問題是原創android.view.MenuItem是ABS保持基準,只有當ICS +但對於舊版本存在,不是保持原來的基準內實現。有什麼辦法可以在ActionBarSharlock中使用新的DrawerLayout?

+0

我能夠毫無困難地實現它。如果你有問題,我們不能幫助,如果我們不知道它是什麼。 – Eluvatar

+0

您是否使用ActionBarSherlock實現它?你如何處理與事實新DrawerLayout需要'mDrawerToggle.onOptionsItemSelected(菜單項)''在公共布爾onOptionsItemSelected(菜單項項)'**時**菜單項是類型'android.view.MenuItem'的?當你繼承'SherlockActivity'你會得到類型的菜單項'com.actionbarsherlock.view.MenuItem' – Androider

+0

這是不同的,我並沒有實現一個抽屜切換。然而,抽屜與ActionBarSherlock一起工作,我不確定的程度,我建議用你剛剛提出的問題創建一個新問題。 – Eluvatar

回答

6

有GitHub上完美的作品

SherlockNavigationDrawer

項目

希望這有助於

+1

對於好奇,這個例子所做的基本上是用標準的Android MenuItem類包裝sherlock MenuItem類,以便可以使用通常的DrawerLayout.onOptionsItemSelected()方法。 – greg7gkb

+0

謝謝,這是一個簡單而有效的解決方法! – akhyar

+0

該解決方法是否支持抽屜圖標?出於其他原因,我終於實現了與AppCompat的遷移,但它很好理解。 – madlymad

22

如果你正在尋找一種方式來打開和關閉DrawerLayout當從動作條用戶觸摸圖標,你可以使用這個:

switch (item.getItemId()) { 
    case android.R.id.home: 
     if (mDrawerLayout.isDrawerOpen(mDrawerList)) { 
      mDrawerLayout.closeDrawer(mDrawerList); 
     } else { 
      mDrawerLayout.openDrawer(mDrawerList); 
     } 
     return true; 

    } 
    return true; 
} 
+1

這正是我所期待的。謝謝@enrique –

+1

@ justin.harrison太好了!很高興知道! –

+1

是的,它的工作原理。涼。 – andude

相關問題