2

У меня есть активность ящика навигации, и фрагменты используются для разных элементов навигационного ящика, как обычно. В первом элементе навигационного ящика есть вкладка. Макет вкладки был реализован с помощью viewpager. Внутри этого viewpager есть карта.getSupportFragmentManager() внутри фрагмента внутри фрагмента

То, что я хочу сделать, это вызов

SupportMapFragment mapFragment = (SupportMapFragment) getActivity().getSupportFragmentManager().findFragmentById(R.id.map); 

Но MapFragment всегда нуль.

Я потратил более 2 часов на использование многих методов, но я не смог добиться успеха.

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

Может ли кто-нибудь предложить метод для достижения этого?

ответ

5

используют эту getChildFragmentManager();, чтобы получить FragmentManager внутри Fragment

-1

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

private void setupViewPager(ViewPager viewPager) { 
    ViewPagerAdapter adapter = new ViewPagerAdapter(getChildFragmentManager()); 
    adapter.addFragment(new OneFragment(), "ONE"); 
    adapter.addFragment(new TwoFragment(), "TWO"); 
    adapter.addFragment(new ThreeFragment(), "THREE"); 
    viewPager.setAdapter(adapter); 
} 
Смежные вопросы