在Android应用程序中滑入菜单 - 允许用户在多个活动之间切换

时间:2013-11-21 15:48:20

标签: android

我几个月前才开始在android中开始编码(虽然以前曾接触过java)。  现在我已经看过很多关于有一个滑入式菜单(比如facebook应用程序)的教程,最终用户可以使用它来在整个应用程序中导航 - 以及在github上查看类似这一个https://github.com/jfeinstein10/SlidingMenu的可能解决方案。 但是,我的问题出现了,所有解决方案都围绕着改变片段而不是活动而工作。到目前为止我对android的知识有限,所以想知道这有可能吗? 如果是这样,有没有人可以将我链接到的样本解决方案?

提前致谢!

3 个答案:

答案 0 :(得分: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

答案 1 :(得分:2)

我建议使用Android Navigation Drawer,因为它可以获得类似的结果。至于在单击导航菜单中的片段时启动新活动,您可以覆盖片段的onClick()方法,以便启动意图以启动所需的新活动。

答案 2 :(得分: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);