Подражая взаимодействию нижней панели NAV в Facebook - PullRequest
0 голосов
/ 07 февраля 2020

Структура приложения:

Основная деятельность

Фрагмент A - вкладка новостной ленты

Фрагмент B - Подробности публикации


В качестве темы Facebook имеет интересное взаимодействие в нижней панели при просмотре сообщения:

  1. нажатие значка нижней панели во фрагменте сообщения -> возврат к фрагменту ленты новостей (предыдущая страница)

  2. нажатие на иконку нижней панели во фрагменте ленты новостей -> вверх


Я пытался закодировать ее в Java внутри фрагмента следующим образом

  1. прервать NAV-бар моей основной активности с помощью setOnNavigationItemSelectedListener в записи и фрагменте ленты новостей

  2. добавить всплывающий стек () при нажатии на значок нижней панели в фрагменте записи

  3. встроенная функция backtotop при нажатии значка нижней панели во фрагменте ленты новостей

кодирование постфрагмента

navView.setOnNavigationItemSelectedListener(new BottomNavigationView.OnNavigationItemSelectedListener() {
            @Override
            public boolean onNavigationItemSelected(@NonNull MenuItem menuItem) {

                    getFragmentManager().popBackStackImmediate();

                return true;
            }
        });

фрагмент ленты новостей

navView.setOnNavigationItemSelectedListener(new BottomNavigationView.OnNavigationItemSelectedListener() {
            @Override
            public boolean onNavigationItemSelected(@NonNull MenuItem menuItem) {

                int scrollY = scrollView.getScrollY();
                if (scrollY > 0) {
                    scrollView.smoothScrollTo(0,(int) root.getY());

                } else if (scrollY == 0) {
                    //disable listener and use back the nav function


                }

                return true;
            }
        });

Я обнаружил, что есть 2 проблемы после реализации

  1. На слушателе все еще устанавливается полоса NAV. Я не могу перейти на другую вкладку своего приложения. Как я могу вернуться к нормальной функции NAV или удалить прослушиватель

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

любой пост / аналогичный пост в предыдущем, который решил мою проблему?

...