I\'m working on application that has a tab structure, and use sliding movements to move through the tabs.
But now, I want to apply Drawer Layout. The problem is tha
Just write
drawer.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED);
to prevent menu from listening to gesture
and use openDrawer
and closeDrawer
to change menu visibility
If you want to navigate between drawer item on click of button inside your fragments, you can use this
((YourMainActivity)getActivity()).selectItem(position);
you can write this way
mButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
drawer.openDrawer(navigationView);
}
});
By default the DrawerLayout is initially hidden from the view unless you put a code to open the Drawer
, by the time there is a sliding event triggered.
From the Navigation Drawer example, the contain content_frame
is used to dynamically display views inside the Drawer
using fragments.
<FrameLayout
android:id="@+id/content_frame"
android:layout_width="match_parent"
android:layout_height="match_parent" >
</FrameLayout>
From the Fragment
's onCreateView()
you can include a button somewhere that has OnClickListener
where in you put this code,
//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;
});
You Can also use* to close the drawer.
drawer.closeDrawer(Your View, Usually a ListView);