Android - раздвижное меню с подменю

Я хотел, чтобы у моего приложения была справочная книга, например, скользящее меню. Я рассказал об этой проблеме и нашел много сообщений, которые только помогли мне создать одно скользящее меню. Но мне нужно, 2-х уровневое скользящее меню, т.е. Когда я нажимаю на какую-то опцию в скользящем меню, он должен открыть другое скользящее меню поверх него (первое скользящее меню должно размываться в этот момент), как приложение zomato, как показано ниже. Я попробовал с библиотекой скользящих меню JFeinstein, но я мог бы создать на ней 2-уровневое раздвижное меню. Есть ли какие-нибудь другие библиотеки для этого, или я должен построить один самостоятельно?

Ниже показано скользящее меню из приложения Zomato:

enter image description here

Когда я нажимаю на опцию "location" в приведенном выше меню, он открывает дополнительное меню, как показано ниже. Мне нужна такая же функция.

enter image description here

Ответ 1

Отметьте компонент слайдов виджет, позволяющий несколько наложенных представлений с помощью скользящего взаимодействия для отображения нескольких данных глубины на одном экране экрана эффективно.

Он также предоставляет демонстрацию ссылочной реализации, которую вы также можете проверить.

Спасибо.

Ответ 2

Вы можете легко добавить столько уровней меню, сколько хотите, используя скользящее меню 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.