2013-08-09 3 views
6

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

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

+0

привет, вам удалось открыть ящик, нажав на кнопку вкладки? пожалуйста, дайте мне знать спасибо. –

ответ

23

Просто напишите

drawer.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED); 

предотвратить меню от прослушивания жест

и использовать openDrawer и closeDrawer изменить Видимость Menų

+0

что бы (int gravity arg) открыть ящик –

+0

@AbdulWahab Gravity.LEFT или Gravity.RIGHT для RTL. Gravity.START/Gravity.END от API 14 – Rowan

15

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

Из примера Navigation 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); 
+2

Это сработало для меня. Я действительно хотел показать ActionBar. Поэтому я скрываю его, добавляет кнопку в основной макет и реализует методы openDrawer и closeDrawer. thanks @lordzden –

+2

Что вы понимаете под этим спискомView в 'drawer.openDrawer (ваш вид, обычно ListView);' @lordzden –

0

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

((YourMainActivity)getActivity()).selectItem(position); 
1

вы можете написать этот путь

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

      drawer.openDrawer(navigationView); 

     } 
    }); 
Смежные вопросы