Как открыть Drawer Layout только кнопкой?

Я работаю над приложением, которое имеет структуру вкладок, и использую скользящие движения для перемещения по вкладкам.

Но теперь я хочу применить Drawer Layout. Проблема в том, что у Ящика есть слайд для открытия событий. Как я могу удалить это событие? Моя идея состояла в том, что ящик мог открываться и закрываться только кнопкой. Это возможно? Спасибо!

4 ответа

Решение

Просто пиши

drawer.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED);

чтобы меню не слушало жест

и использовать openDrawer а также closeDrawer изменить видимость меню

По умолчанию DrawerLayout изначально скрыт от вида, если вы не введете код для открытия Drawer к тому времени, когда происходит скользящее событие.

В примере с навигационным ящиком содержимое content_frame используется для динамического отображения видов внутри Drawer используя фрагменты.

  <FrameLayout
        android:id="@+id/content_frame"
        android:layout_width="match_parent"
        android:layout_height="match_parent" >
    </FrameLayout>

От Fragment "s onCreateView() Вы можете включить кнопку где-нибудь OnClickListener где вы положили этот код,

   //For me a better way in avoiding a `null pointer` in getting the DrawerLayout
   final DrawerLayout drawer = (DrawerLayout) getActivity().findViewById(R.id.drawer_layout);
   btn.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                            //Opens the Drawer
                drawer.openDrawer(Your View, Usually a ListView);
            }

                return false;
        });

Вы также можете использовать *, чтобы закрыть ящик.

drawer.closeDrawer(Your View, Usually a ListView);

ты можешь написать так

 mButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {

            drawer.openDrawer(navigationView);

        }
    });

Если вы хотите перемещаться между элементами ящика при нажатии кнопки внутри ваших фрагментов, вы можете использовать это

((YourMainActivity)getActivity()).selectItem(position);
Другие вопросы по тегам