11

我希望我的应用程序有像滑动菜单一样的脸书。我用谷歌搜索了这个问题,发现了很多帖子,这些帖子只帮助我构建了一个滑动菜单。但我需要的是,2 级滑动菜单,即当我单击滑动菜单中的某个选项时,它应该在其顶部打开另一个滑动菜单(此时第一个滑动菜单应该模糊),如下所示的 zomato 应用程序。我尝试使用 JFeinstein 滑动菜单库,但我可以使用它构建一个 2 级滑动菜单。是否有任何其他库可以实现这一目标,或者我应该自己构建一个?

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

在此处输入图像描述

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

在此处输入图像描述

4

2 回答 2

6

查看滑动面板组件,这是一个小部件,可通过滑动交互实现多个叠加视图,从而在一个屏幕显示中有效地显示多个深度数据。

它还提供了引用实现的演示,您也可以查看它。

谢谢。

于 2013-03-07T06:50:55.920 回答
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 扩展您的活动。

于 2014-02-25T11:19:14.863 回答