Как установить ViewPager внутри фрагмента

Мне нужен viewPager внутри фрагмента, но у меня есть два фрагмента, фрагмент 1 – это мое МЕНЮ, а фрагмент два я хочу использовать ViewPagerIndicator …

Но фрагмент не может иметь другого фрагмента … что мне нужно сделать для этого?

Введите описание изображения здесь

Solutions Collecting From Web of "Как установить ViewPager внутри фрагмента"

Начиная с Android 4.2, есть вложенные фрагменты. http://developer.android.com/about/versions/android-4.2.html#NestedFragments В библиотеке поддержки теперь также включена поддержка этого для старых версий Android.

Поэтому вы можете сделать что-то вроде этого:

@Override public void onViewCreated(View view, Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); ViewPager mViewPager = (ViewPager) view.findViewById(R.id.viewPager); mViewPager.setAdapter(new MyAdapter(getChildFragmentManager())); } 

Полная реализация доступна здесь: https://github.com/marcoRS/nested-fragments/tree/master/src/com/burnside/digital/nestedfragments

Вы должны использовать getChildFragmentManager() вместо getSupportFragmentManager() чтобы получить FragmentManger внутри фрагмента. Но вы не должны использовать FragmentStatePagerAdapter а не FragmentPagerAdapter .

С помощью библиотеки поддержки Android V4 вы можете добавить фрагмент внутри другого фрагмента. Попытайтесь использовать его, он может решить вашу проблему.

После прочтения некоторых примеров вы не можете иметь FragmentActivity внутри фрагмента. Не обязательно иметь два фрагмента, и это должен быть FragmentPageAdapter … Мне нужно только это сделать.

 <android.support.v4.view.ViewPager android:id="@+id/pager" android:layout_width="match_parent" android:layout_height="0px" android:layout_weight="1" > </android.support.v4.view.ViewPager> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_weight="0" android:gravity="center" android:measureWithLargestChild="true" android:orientation="horizontal" > <Button android:id="@+id/first" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="First" > </Button> <Button android:id="@+id/last" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Last" > </Button> </LinearLayout> 

Источник: http://www.truiton.com/2013/05/android-fragmentpageradapter-example/

возможно. Попробуйте сделать этот файл view_pager_fragment.xml кода

 <android.support.design.widget.AppBarLayout android:id="@+id/appBarLayout" android:layout_width="match_parent" android:layout_height="wrap_content" android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"> <android.support.design.widget.TabLayout android:id="@+id/tab" android:layout_width="match_parent" android:layout_height="wrap_content" /> </android.support.design.widget.AppBarLayout> <android.support.v4.view.ViewPager android:id="@+id/viewpager" android:layout_width="match_parent" android:layout_height="match_parent" app:layout_behavior="@string/appbar_scrolling_view_behavior" /> 

ViewPagerFragment

 ViewPager viewPager; TabLayout tabLayout; @Nullable @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.tracks, container, false); viewPager = (ViewPager) view.findViewById(R.id.viewpager); tabLayout = (TabLayout) view.findViewById(R.id.tab); return view; } @Override public void onActivityCreated(@Nullable Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); setupViewPager(viewPager); tabLayout.setupWithViewPager(viewPager); tabLayout.setOnTabSelectedListener(new TabLayout.OnTabSelectedListener() { @Override public void onTabSelected(TabLayout.Tab tab) { } @Override public void onTabUnselected(TabLayout.Tab tab) { } @Override public void onTabReselected(TabLayout.Tab tab) { } }); } private void setupViewPager(ViewPager viewPager) { ViewPagerAdapter viewPagerAdapter = new ViewPagerAdapter(getChildFragmentManager());`` viewPagerAdapter.addFragment(new FirstFragment(), "First"); viewPagerAdapter.addFragment(new SecoundFragment(), "Secound"); viewPagerAdapter.addFragment(new LoginFragment(), "Login"); viewPager.setAdapter(viewPagerAdapter); } private class ViewPagerAdapter extends FragmentPagerAdapter { List<Fragment> fragmentList = new ArrayList<>(); List<String> fragmentTitles = new ArrayList<>(); public ViewPagerAdapter(FragmentManager fragmentManager) { super(fragmentManager); } @Override public Fragment getItem(int position) { return fragmentList.get(position); } @Override public int getCount() { return fragmentList.size(); } @Override public CharSequence getPageTitle(int position) { return fragmentTitles.get(position); } public void addFragment(Fragment fragment, String name) { fragmentList.add(fragment); fragmentTitles.add(name); } }