У меня есть четыре фрагмента: " Flightdata ", " Состав ", " Наука " и " Бизнес ".
Flightdata имеет Viewpager для отображения фрагментов " Суда " и " * "
Наука имеет ViewPager для отображения фрагментов " Techs " и " dData "
Business имеет отображаемый Viewpager " Contracts фрагменты "и" Financial Strategies"
Затем у меня есть Навигационный ящик (и нижний вид навигации, который работает), чтобы выбрать нужную страницу, для этого я вызываю метод setCurrentItem () , чтобы установить ViewPager на правильную страницу, когда я вызываю его с помощью навигационного ящика, он не работает. Когда я нажимаю страницы в Навигаторе, он просто приводит меня к фрагменту, который им принадлежит, а не к выбранной мной странице, поэтому, если я нажимаю « dData », которая находится в « Science » фрагмент, я перейду к «Tech», которая является первой страницей фрагмента « Science », так что я просто перейду к фрагменту «Science»
здесь MainActivity (не Не забывайте, что я написал «Бизнес вместо бизнеса»
1046 *
}
Вот Flightdata. java, идентичный фрагментам Science и Business, только имя ViewPager меняется.
/**
* Простой подкласс {@link Fragment}. * / publi c класс Flightdata расширяет фрагмент {
public Flightdata() {
// Required empty public constructor
}
public static ViewPager pager2;
private PagerAdapter pagerAdapter;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
// Inflate the layout for this fragment
View v = inflater.inflate(R.layout.fragment_flightdata, container, false);
List<Fragment> list = new ArrayList<>();
list.add(new Vessels());
list.add(new Alarms());
pager2 = v.findViewById(R.id.pageviewer);
pagerAdapter = new SlidePagerAdapter(getFragmentManager(),list);
pager2.setAdapter(pagerAdapter);
TabLayout tabLayout = v.findViewById(R.id.tabs);
tabLayout.setupWithViewPager(pager2);
return v;
}
public static void Page1()
{
pager2.setCurrentItem(0);
}
public static void Page2 ()
{
pager2.setCurrentItem(1);
}
}