Доступ к представлению родительского фрагмента 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);