2013-11-21 35 views
1

幾個月前,我只有最近纔開始在android中開始編碼(雖然之前已經接觸過java)。 現在我已經看到很多關於有一個滑入菜單(如Facebook應用程序)的教程,最終用戶可以使用它來瀏覽整個應用程序 - 以及在github上查找像這樣的一個https://github.com/jfeinstein10/SlidingMenu可能的解決方案。 但是,我的問題是,所有的解決方案都圍繞着改變碎片而不是活動的基礎。我迄今爲止在android上的知識有限,所以想知道這甚至有可能嗎? 如果是這樣,有沒有樣本解決方案可以讓有人聯繫我?在Android應用程序的菜單中滑動 - 允許用戶在多個活動之間切換

在此先感謝!

回答

2

您稱爲滑入式菜單的實際上稱爲Android中的導航抽屜。它最近變得很受歡迎。 你可以得到更多有關它的使用有: http://developer.android.com/design/patterns/navigation-drawer.html

執行準則和代碼示例,去那裏: http://developer.android.com/training/implementing-navigation/nav-drawer.html

另外,請籤什麼抽屜式導航欄應使用設計指南Android,爲了避免將它用於錯誤的東西: http://www.youtube.com/watch?v=F5COhlbpIbY

2

我推薦使用Android的Navigation Drawer,因爲它實現了類似的結果。至於在導航菜單中單擊片段時開始新活動,您可以覆蓋該片段的onClick()方法,以便引發意圖啓動所需的新活動。

+0

嗨Rahin,當創建一個活動時,與該活動生成相應的XML佈局文件。我是否需要在新活動的xml文件中複製抽屜佈局,如果我想在應用程序中更深入地進入新活動時保留菜單? – user3018276

+0

如果您計劃在每次點擊導航抽屜碎片時調用新活動的邏輯,那麼是的,您需要複製新活動的抽屜佈局。我推薦做的是遵循@ muslidrikk的建議,並觀看他們關於導航抽屜設計的視頻。 – Rahin

0

我推薦使用已經看過的SlidingMenu庫,https://github.com/jfeinstein10/SlidingMenu

這是非常容易設置,並與切換活動,而不是片段效果很好。它與官方導航抽屜不完全相同,但效果相似。我已經在我的應用程序中實現了它(切換活動)。

menu = new SlidingMenu(this); 
menu.setMode(SlidingMenu.LEFT); 
menu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN); 
menu.setShadowWidth(8); 
menu.setFadeDegree(0.8f); 
menu.attachToActivity(this, SlidingMenu.SLIDING_CONTENT); 
menu.setBehindWidth(800); 
menu.setMenu(R.layout.menu_frame); 
navListView = (ListView) findViewById(R.id.nav_menu); 

final String[] nav = { "Item 1", 
     "Item 2", 
     "Item 3", 
     "Item 4", 
     "Item 5" 
}; 

// A list of type RowItem, which essentially just stores the titles of each item 
List<RowItem> rowItems; 

rowItems = new ArrayList<RowItem>(); 
for (int i = 0; i < nav.length; i++) { 
    RowItem item = new RowItem(navPhoto[i], nav[i]); 
    rowItems.add(item); 
} 

// A custom adapter, for laying out the row item in sliding menu 
CustomListViewAdapter listAdapter = new CustomListViewAdapter(this, 
     R.layout.nav_item_layout, rowItems); 

navListView.setAdapter(listAdapter); 
// You can set this onItemClickListener to listen for click events in the nav list 
// And open new activities based on that 
navListView.setOnItemClickListener(this);