Pestañas deslizantes dentro de las pestañas de la barra de acciones
Estoy tratando de implementar pestañas deslizantes dentro de las pestañas de actionBar como flipboard. Así que una de las pestañas principales tendrá tres pestañas. Las subpestañas se desplazarán primero y una vez que todas las pestañas se desplacen, la pestaña principal se enfocará y comenzará a desplazarse.
Estoy adjuntando captura de pantalla de flipBoard UI
- ¿Cómo puedo añadir un fragmento a un ViewPager? AddView bloquea mi aplicación
- MuPDF para Android: opción para el fragmento en su lugar Actividad
- ¿Cómo uso las preferencias de los fragmentos con ViewPager?
- Nesting Android ViewPager, Swiping ListItems dentro de un ListView horizontalmente
- Problemas de rendimiento de Android ViewPager al utilizar el fondo
¿Alguien ha hecho esto? Por favor ayuda.
- Cómo reemplazar View Pager ver completamente con un nuevo Fragmento en Android
- ViewPager con una página que contiene varios fragmentos "java.lang.IllegalArgumentException: No se encontró ninguna vista para id"
- ¿Cómo puedo desactivar la precarga en un viewpager?
- Android cargar datos asincrónicamente en vista pager
- Llenar cada fragmento en ViewPager con otro objeto JSON sin cargar de nuevo
- Actualización dinámica de TabLayout sin cambiar la ficha seleccionada
- ViewPager funciona bien en la primera vez, pero en la recarga de nuevo, recibiendo el error java.lang.IllegalStateException?
- Acceder a un método de un fragmento de la actividad ViewPager
Parece que ya está gestionado por Android: sólo tienes que crear un ViewPager en la actividad externa y para cada fragmento alojado por ViewPager, creas ViewPager. Este es mi proyecto de prueba:
MainActivity.java
public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); MyPagerAdapter adapter = new MyPagerAdapter(getSupportFragmentManager()); ViewPager viewPager = (ViewPager) findViewById(R.id.pager_activity); viewPager.setAdapter(adapter); } private class MyPagerAdapter extends FragmentStatePagerAdapter { public MyPagerAdapter(FragmentManager fm) { super(fm); } @Override public android.support.v4.app.Fragment getItem(int i) { return new InnerFragment(); } @Override public int getCount() { return 3; } @Override public CharSequence getPageTitle(int position) { return "ACTIVITY TITLE " + (position+1); } } }
Activity_main.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity"> <android.support.v4.view.ViewPager xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/pager_activity" android:layout_width="match_parent" android:layout_height="match_parent"> <android.support.v4.view.PagerTitleStrip android:id="@+id/pager_title_strip_activity" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_gravity="top" android:background="#33b5e5" android:textColor="#fff" android:paddingTop="4dp" android:paddingBottom="4dp" /> </android.support.v4.view.ViewPager> </RelativeLayout>
InnerFragment.java (uno de los fragmentos alojados dentro del viewpager de actividad)
public class InnerFragment extends Fragment { @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View root = inflater.inflate(R.layout.fragment_inner, container, false); ViewPager pager = (ViewPager) root.findViewById(R.id.pager); MyPagerAdapter adapter = new MyPagerAdapter(getChildFragmentManager()); pager.setAdapter(adapter); return root; } private class MyPagerAdapter extends FragmentStatePagerAdapter { public MyPagerAdapter(FragmentManager fm) { super(fm); } @Override public android.support.v4.app.Fragment getItem(int i) { return PageFragment.newInstance(i+1); } @Override public int getCount() { return 3; } @Override public CharSequence getPageTitle(int position) { return "FRAGMENT " + (position+1) + " TITLE " + (position+1); } } }
Y su diseño fragment_inner.xml
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="it.test.testflipboardviewpager.InnerFragment"> <android.support.v4.view.ViewPager xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/pager" android:layout_width="match_parent" android:layout_height="match_parent"> <android.support.v4.view.PagerTitleStrip android:id="@+id/pager_title_strip" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_gravity="top" android:background="#33b5e5" android:textColor="#fff" android:paddingTop="4dp" android:paddingBottom="4dp" /> </android.support.v4.view.ViewPager> </FrameLayout>
PageFragment.java – uno de los fragmentos alojados por el viewpager de InnerFragment
public class PageFragment extends Fragment { private int mPosition; public static PageFragment newInstance(int position) { PageFragment fragment = new PageFragment(); Bundle args = new Bundle(); args.putInt("position", position); fragment.setArguments(args); return fragment; } public PageFragment() { // Required empty public constructor } @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); if (getArguments() != null) { mPosition = getArguments().getInt("position"); } } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // Inflate the layout for this fragment View root = inflater.inflate(R.layout.fragment_page, container, false); TextView textView = (TextView) root.findViewById(R.id.text); textView.setText("" + mPosition); return root; } }
Y su diseño fragment_page.xml
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="it.test.testflipboardviewpager.PageFragment"> <TextView android:id="@+id/text" android:textSize="25sp" android:gravity="center" android:layout_width="match_parent" android:layout_height="match_parent" /> </FrameLayout>
¡Eso es! Trata de hacerme saber.
Edit: Olvidó decir que el primer componente no es un ActionBar.
- Actividad de inicio de sesión de Android y redirección de actividad de inicio
- Android ADK con PC como host USB con libusb, error de transferencia masiva