2013-03-07 147 views
10

我希望我的应用程序具有滑动菜单等脸书。我谷歌关于这个问题,并发现了很多帖子,这只是帮助我建立一个滑动菜单。但我需要的是,2级滑动菜单,即当我点击滑动菜单中的某个选项时,它应该在其上面打开另一个滑动菜单(第一个滑动菜单应该模糊此处),如下面所示的zomato应用程序。我尝试使用JFeinstein滑动菜单库,但是我可以使用它创建2级滑动菜单。有没有其他图书馆来实现这一目标,或者我应该自己创建一个吗?Android - 带子菜单的滑动菜单

下面显示的是从Zomato应用滑动菜单:

enter image description here

当我在上面显示菜单上的“位置”选项点击,它就会打开一个次级菜单,如下所示。我想要相同的功能。

enter image description here

+3

想象第二个滑动菜单是新菜单,因此将其他滑动菜单分配给第二个滑动菜单,就像创建双滑动菜单一样,有什么困难? – Daler 2013-03-07 06:30:51

+0

@Daler I dint试试这个bcox我希望二级菜单是一个二级菜单,而不是新菜单,我的意思是当我点击第一个菜单选项时,它应该变得模糊并且进入第二个菜单后面。 – 2013-03-07 06:34:42

+0

@Daler能否以更清晰的方式提出您的第一条评论? – 2013-03-07 07:22:59

回答

6

检查出Sliding Panel component窗口小部件能够与滑动相互作用用于有效地示出在一个屏幕中显示多个深度数据的多个重叠的视图。

它还提供了参考实现的demo,你也可以检查它。

谢谢。

+0

我刚刚下载演示来检查它是如何工作的。我导入并尝试运行它,但它crahses离开logcat消息如下所示http://pastebin.com/6iKBJ98i – 2013-03-07 07:07:52

+0

@sureshcheemalamudi嗨,你能找到解决方案这个要求。我有完全相同的要求,获得2级滑动菜单,直到现在还没有运气。你能帮忙吗?谢谢。 – jasdmystery 2013-03-11 08:44:54

+0

非常错误和缓慢的组件 – agamov 2013-10-13 14:27:41

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 

    } 
} 

这里是输出:

enter image description here

注:您需要导入JFeinstein滑动菜单库,并从SlidingFragmentActivity拓展业务。