我希望我的应用程序能够像滑动菜单一样使用脸书。我谷歌了解这个问题,发现了很多帖子,这只能帮助我建立一个单一的滑动菜单。但我需要的是,2级滑动菜单,即当我点击滑动菜单中的某个选项时,它应该打开它上面的另一个滑动菜单(第一个滑动菜单应该在此点模糊),如下图所示的zomato应用程序。我尝试使用JFeinstein滑动菜单库,但我可以使用它构建一个2级滑动菜单。是否有任何其他库可以实现这一目标,还是应该自己构建一个?
以下显示的是Zomato app的滑动菜单:
当我点击上面显示的菜单上的“位置”选项时,它将打开一个二级菜单,如下所示。我想要相同的功能。
答案 0 :(得分:6)
答案 1 :(得分:3)
您可以使用JFeinstein滑动菜单轻松添加任意数量的菜单级别。这个想法是使用滑动菜单作为主滑动菜单的左或右滑动视图等。添加了带有注释和输出的2级菜单的完整代码,以使事情更加清晰。
public class MainActivity extends SlidingFragmentActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// dummy views - content view
TextView content = new TextView(this);
content.setBackgroundColor(Color.WHITE);
content.setText("content");
// Menu view
TextView menu = new TextView(this);
menu.setBackgroundColor(Color.GREEN);
menu.setText("menu");
// 2nd level menu view
TextView subMenu = new TextView(this);
subMenu.setBackgroundColor(Color.LTGRAY);
subMenu.setText("submenu");
//configure sliding menu
SlidingMenu sm = getSlidingMenu();
sm.setMode(SlidingMenu.SLIDING_WINDOW);
sm.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);
sm.setBehindOffset(80);
sm.setBehindScrollScale(0.25f);
sm.setFadeDegree(0.25f);
//Another sliding menu - for 2nd level or sub menu
SlidingMenu leftSlidingView = new SlidingMenu(this);
leftSlidingView.setMode(SlidingMenu.SLIDING_WINDOW);
leftSlidingView.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);
leftSlidingView.setBehindOffset(80);
leftSlidingView.setBehindScrollScale(0.25f);
leftSlidingView.setFadeDegree(0.25f);
//==== Required instruments has been created ;) lets put them at right places
// setting menu and sub-menu view
leftSlidingView.setContent(menu); // at center of left sliding view
leftSlidingView.setMenu(subMenu); // at left of left sliding view
//set content view
setContentView(content); // at center of main sliding view
// finally, set leftSlidingView as behind content view of main view
setBehindContentView(leftSlidingView); // at left of main sliding view
}
}
这是输出:
注意:您需要将JFeinstein滑动菜单导入为库并从SlidingFragmentActivity扩展您的活动。