tutorial multiple inside how fragments example ejemplo activity android android-fragments android-viewpager android-nested-fragment

android - multiple - Cómo configurar ViewPager dentro de un Fragmento



fragments android tutorial (5)

A partir de Android 4.2, hay fragmentos anidados. http://developer.android.com/about/versions/android-4.2.html#NestedFragments La biblioteca de soporte ahora también incluye compatibilidad para versiones anteriores de Android.

Entonces puedes hacer algo como esto:

@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())); }

La implementación completa está disponible aquí: https://github.com/marcoRS/nested-fragments/tree/master/src/com/burnside/digital/nestedfragments

Necesito un viewPager dentro del fragmento, pero tengo dos fragmentos, el fragmento 1 es mi MENÚ, y el fragmento dos quiero usar un ViewPagerIndicator ...

pero un fragmento no puede tener otro fragmento ... ¿qué tengo que hacer para eso?


Con la biblioteca Android Support V4, puede agregar un fragmento dentro de otro fragmento. Intenta usarlo, puede resolver tu problema.


Debe usar getChildFragmentManager() lugar de getSupportFragmentManager() para obtener FragmentManger dentro de un Fragment. Pero no debe usar FragmentStatePagerAdapter lugar de FragmentPagerAdapter .


Después de leer algunos ejemplos, no puede tener una FragmentActivity dentro de fragmentActivity. No es necesario tener dos fragmentos y esta necesidad es un FragmentPageAdapter ... solo necesito hacer esto.

<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>

Fuente: http://www.truiton.com/2013/05/android-fragmentpageradapter-example/


es posible. intente hacer este código view_pager_fragment.xml file

<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); } }