ViewPager setCurrentItem () не работает в другой деятельности - PullRequest
0 голосов
/ 05 марта 2020

У меня есть четыре фрагмента: " 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);
}

}

...