Я знаю, что в StackOverflow есть много похожих вопросов, но мой вопрос немного отличается.
У меня есть вложенная иерархия фрагментов, как в нижерасположенной структуре:
                                  Activity
                                     |
                                     |
                                 AFragment
                                     |
                                (ViewPager)
                                 |       |         
                                 |       |         
                         BFragment       BFragment  .....
                            |                       
                       (ViewPager)                       
                        |       |                         
                        |       |                         
                 CFragment     CFragment  ...
                     |
                (ViewPager)                       
                  |     |                              
                  |     |                        
           DFragment   DFragment ...
Теперь я хочу знать, показывает ли DFragment пользователю или нет?
Я попробовал много решений из StackOverflow, но не смог добиться успеха.
Что я пробовал:
Я попробовал setUserVisibleHint(), но он возвращает true для нескольких DFragment в иерархии выше, что является причиной ViewPager
Я также пробовал по этим ссылкам: link1, link2, link3 и т.д.... но не получили фактического решения.
Ожидание помощи. Спасибо.
UPDATE
Класс адаптера
class ViewPagerAdapter extends FragmentPagerAdapter {
        private final List<Fragment> mFragmentList = new ArrayList<>();
        private final List<String> mFragmentTitleList = new ArrayList<>();
        public ViewPagerAdapter(FragmentManager manager) {
            super(manager);
        }
        @Override
        public Fragment getItem(int position) {
            return mFragmentList.get(position);
        }
        @Override
        public int getCount() {
            return mFragmentList.size();
        }
        public void addFragment(Fragment fragment, String title) {
            mFragmentList.add(fragment);
            mFragmentTitleList.add(title);
        }
        @Override
        public CharSequence getPageTitle(int position) {
            return mFragmentTitleList.get(position);
        }
    }
