Navigation drawer with Activity and child Fragment

2019-06-17 07:13发布

问题:

I have a Activity A, a ListFragment P and 2 Fragments Q and R.

When the app is launched, A is created, which loads P. Based on what user clicks, it is replaced by Q or R.

Now by referencing this tutorial, I have implemented a Navigation Drawer which shows certain items to the user. However, since I have implemented the Navigation Drawer in the Activity, it shows for all the Fragments. I want it to be only available to P.

(Very much similar to Googles Gmail app. When the user is on the main screen - the drawer is present. When user taps to open an email, the drawer changes to back button)

I am not sure how to translate the above code. Any help is appreciated.

回答1:

I solved this issue by simply overriding the up carat behavior by calling the mDrawerToggle.setDrawerIndicatorEnabled(enable) and passing the boolean enable or disable as needed.

(The fragments where I didn't want the drawer to show called this method with false and where I wanted the drawer to be shown called this method with true. I put the call inside the onResume() of the respective fragment for obvious reasons.)

This works exactly like I want, and I did not have to change the design of my project :).



回答2:

What you can do is create a new FragmanetActivity S and replace Q and R accordingly. If you are app is for Android 3.0 lower user ActionBarActivity create a actionbar and set its setDisplayHomeAsUpEnabled(true). As the new FragmentActivity will have new layout there will be no NavigationDrawer.