Как открыть 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);