Ответ 1
Из фрагмента вызовите getActivity(), который даст вам действие, в котором размещен фрагмент. Затем вызовите findViewById (ViewPagerId), чтобы получить ViewPager.
ViewPager vp=(ViewPager) getActivity().findViewById(ViewPagerId);
Я пытаюсь получить доступ к родительскому viewpager изнутри фрагмента, но я понятия не имею, как это сделать. Мне нужно переключить currentItem на ViewPager после события onClick внутри фрагмента.
Любые идеи?
EDIT:
Я хочу получить доступ к родительскому представлению (ViewPager View), чтобы я мог изменить текущий объект, который является видимым, изнутри одного из моих фрагментов.
Из фрагмента вызовите getActivity(), который даст вам действие, в котором размещен фрагмент. Затем вызовите findViewById (ViewPagerId), чтобы получить ViewPager.
ViewPager vp=(ViewPager) getActivity().findViewById(ViewPagerId);
Немного поздно, но вы можете получить в Fragment onCreateView.
Параметр "container" является родительским представлением в этом случае ViewPager.
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
....
ViewPager pager = (ViewPager) container;
....
}
Изменить: Он полностью безопасен при правильной утилизации фрагментов и управлении back-stack. Я делал плохие вещи с моими фрагментами, поэтому иногда у меня был "пустой" контейнер.
Методы onCreateView
и onViewCreated
и onAttach
называются слишком ранними.
Вид определенно привязан к его родительскому представлению в методе фрагмента onResume
. Это хорошее место для использования getView().getParent()