Установить выбранную по умолчанию опцию в навигационном ящике

Я использую последнюю библиотеку поддержки дизайна. И я настроил представление навигации с четырьмя фрагментами в качестве пунктов меню.

Я хотел бы, чтобы мой первый фрагмент (т.е. первый элемент в навигационном ящике) открывался, когда пользователь запускает приложение.

По умолчанию он показывает мне макет MainActivity.

Я попытался

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

Но приведенный выше код ничего не делает.


person Vivek_Neel    schedule 05.07.2015    source источник
comment
Вот пример thegeekyland.blogspot.com/ 2015/11/   -  person Arlind    schedule 04.12.2015


Ответы (2)


Используете ли вы макет контейнера фрагментов? Если нет, добавьте это в свой activity_main.xml

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

В вашей деятельности переопределите метод onCreate:

@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();
    }
}

Вместо MainActivityFragment() назовите свой фрагмент, который вы хотите отобразить в начале.

person Damian Kozlak    schedule 05.07.2015
comment
Да, я использую контейнер. Спасибо за решение. - person Vivek_Neel; 06.07.2015
comment
Обратите внимание: вы должны поместить вызов replace() в проверку if (savedInstanceState == null), иначе ваш фрагмент будет заменен при ротации. - person ianhanniballake; 06.07.2015

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

заменить на

navigationView.getMenu().getItem(0).setChecked(true);
person Mansukh Ahir    schedule 22.09.2015