Как реализовать второе меню?

ФОТО

Есть нижняя панель меню, хочу сделать второе меню и там при выборе "Текст1" будет ссылаться на "Главную", т.е чтобы нижняя панель тоже двигалась. Не хочу использовать Drawable Navigation, так как нужно использовать активити, а у меня все во фрагментах


Ответы (1 шт):

Автор решения: Andrew

Делается это довольно просто. Пункт меню, это фрагмент, который будет содержать список с пунктами которые соответствуют нижнему меню. Это может быть либо список RecyclerView или просто linearLayout с какими-то textView например. Дальше когда вы нажимаете на элемент списка в фрагменте, вы используя интерфейс между этим фрагментом и активностью-контейнером. В метод интерфейса вы будете передавать id пункта нижнего меню который должен быть выбран. И по итогу в методе интерфейса который используется в активности вы производите программный выбор пункта нижнего меню:

bottomNavigationView.setSelectedItemId(R.id.main);

Как передавать данные из фрагмента в родительскую активности? Делаем интерфейс:

public interface OnDataPass {
    public void onDataPass(Int data);
}

дальше в этом фрагменте подключаем интерфейс:

OnDataPass dataPasser;

@Override
public void onAttach(Context context) {
    super.onAttach(context);
    dataPasser = (OnDataPass) context;
}

передача данных при выборе элемента списка менюшки в фрагменте:

dataPasser.onDataPass(data);

В активности делаем implement OnDataPass:

@Override
public void onDataPass(Int data) {
    Log.d("LOG","hello " + data);
}

Вот как подключаем фрагмент к интерфейсу и активность. Дальше в методе onDataPass в активности делаем через switch например:

@Override
public void onDataPass(Int data) {
switch(data){
   case (1):
     bottomNavigationView.setSelectedItemId(R.id.main);
   }
   ....
}
→ Ссылка