Skip to content Skip to sidebar Skip to footer

How To Select The First Item In A Navigation Drawer And Open A Fragment On Application Start

I have created MainActivity with NavigationView. When Activity is opened I want to automatically select the first item in the navigation drawer and open Fragment under that item. I

Solution 1:

In onCreate(), following code will load the first item's fragment upon first start:

if (savedInstanceState == null) {
    navigationView.getMenu().performIdentifierAction(R.id.posts, 0);
}

Thanks to calvinfly for this comment.


Solution 2:

Add android:checked="true" to your first menu item.

And manually select one item, using

getSupportFragmentManager().beginTransaction().replace(R.id.frame, postListFragment).commit();

to open fragment.


Solution 3:

Instead of normal listener ...

navView.setNavigationItemSelected(new Navigation.View.OnNavigationItemSelectedListener() {bla, bla, bla})

Create the listener as an Obj:

NavigationView.OnNavigationItemSelectedListener navViewListener;
            navView.setNavigationItemSelectedListener(navViewListener = new NavigationView.OnNavigationItemSelectedListener() {bla, bla, bla})

...and use the Obj to trigger the listener event:

navViewListener.onNavigationItemSelected(navView.getMenu().getItem(0));

...where getItem(0) is the first menu item.

Use a method getItem(0).setChecked(true) or android:checked="true" at its menu item XML definition.


Solution 4:

You could also use navigationView.setCheckedItem(R.id.default)(javadoc) after you setup your navigationview.


Solution 5:

just add this code in onCreate method:

FragmentTransaction ftrans = getFragmentManager().beginTransaction();
ftrans.replace(R.id.container, <yourfragment>).commit();

Work for me !


Post a Comment for "How To Select The First Item In A Navigation Drawer And Open A Fragment On Application Start"