Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Set default selected option in navigation drawer

I am using the latest design support library. And I have set up the navigation view with four fragments as its menu items.

I would like to have my first fragment (i.e first item in the navigation drawer)opened when the user starts the app.

By default it shows me the MainActivity layout.

I tried

navigationView.getMenu().getInt(0).setChecked(true);

But the above code does not do anything.

like image 557
Vivek_Neel Avatar asked Dec 05 '22 21:12

Vivek_Neel


2 Answers

Do you use fragment container layout? If not, add this to your activity_main.xml

<FrameLayout
    android:id="@+id/fragment_container"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />

In your Activity override onCreate method:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    if (savedInstanceState == null) {
        getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container, new MainActivityFragment()).commit();
    }
}

Instead of MainActivityFragment() call your fragment which you want to display at the beginning.

like image 89
Damian Kozlak Avatar answered Dec 31 '22 11:12

Damian Kozlak


navigationView.getMenu().getInt(0).setChecked(true);

replace by

navigationView.getMenu().getItem(0).setChecked(true);
like image 38
Mansukh Ahir Avatar answered Dec 31 '22 11:12

Mansukh Ahir