Доступ к представлению родительского фрагмента ViewPager в дочернем фрагменте пейджера
Я хочу получить доступ к родительским представлениям фрагментов в дочернем фрагменте, который прикреплен к пейджеру вида. Средство Parent Fragment содержит View Pager и View Pager, затем имеет фрагмент, и я хочу использовать фрагменты фрагментов родителя в текущем фрагменте пейджера.
Родитель Fragment→ (содержит) Просмотр Pager--→ (содержит) Детский фрагмент. Детский фрагмент хочет использовать несколько фрагментов родительского фрагмента. Пожалуйста, предложите любое решение относительно того же.
Заранее спасибо.
Ответы
Ответ 1
в использовании вашего дочернего фрагмента:
ParentFragment frag = ((ParentFragment)this.getParentFragment());
и в вашем родительском фрагменте вы можете хранить ссылки ваших необходимых представлений и использовать getter setter для доступа к ним, другое решение создает интерфейс прослушивателя. ниже, чтобы узнать, как реализовать:
http://developer.android.com/training/basics/fragments/communicating.html
Ответ 2
Вы можете использовать приведенный ниже код.
FloatingActionButton fab = getParentFragment().getView().findViewById(R.id.menu_item);
Ответ 3
Я пытался получить sibling Fragment
с помощью parent
поэтому я попытался использовать getParentFragment()
из child Fragment
и всегда возвращал значение null
. Так что вместо этого я только что получил фрагмент из viewpagerAdapter
здесь то, что я сделал, чтобы получить доступ к sibling Fragment
:
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
mViewPager = (ViewPager) container;
BasePagerAdapter bpa = (BasePagerAdapter) mViewPager.getAdapter();
MySiblingFragment f = (MySiblingFragment) bpa.getItem(1); //I know the position of the fragment so I hardcoded it
}
надеется, что это поможет кому-то.
Ответ 4
Внутри родительского фрагмента
ViewPagerAdapter adapter = new ViewPagerAdapter(getChildFragmentManager())
убедитесь, что это getChildFragmentManager()
и внутри дочернего фрагмента, чтобы получить доступ к чему-либо из родительского фрагмента
((ParentFragment)this.getParentFragment()).any_thing_inside_parent_fragment;
Ответ 5
Я получаю переменную и вид из активности, используя эту
YourActivity activity = (YourActivity) getActivity();
activity.mVar = 1;
activity.textView.setText("Number "+activity.mVar);