Android - Sliding menu with sub menu

前端 未结 2 1823
情歌与酒
情歌与酒 2021-02-08 10:44

I wanted my app to have face book like sliding menu. I google\'d about the issue and found many posts out there, which only helped me to build a single sliding menu. But what i

2条回答
  •  走了就别回头了
    2021-02-08 11:13

    You can easily add as many menu levels as you desired using JFeinstein sliding menu. The idea is to use sliding menu as left or right sliding view of main sliding menu and so on. Complete code of 2 level menu with comments and output is added to make things more clear.

     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
    
        }
    }
    

    Here is the output:

    enter image description here

    Note: You need to import JFeinstein sliding menu as library and extend your activity from SlidingFragmentActivity.

提交回复
热议问题