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 Tabs de FlipBoard

¿Alguien ha hecho esto? Por favor ayuda.

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.

  • Diferenciación entre desplazamiento de usuario y cambio de página de programación en ViewPager
  • RecyclerView + ViewPager NullPointerException en 'boolean android.support.v7.widget.RecyclerView $ LayoutManager.canScrollHorizontally ()'
  • Reordenar páginas en FragmentStatePagerAdapter usando getItemPosition (objeto objeto)
  • SetCurrentItem en ViewPager no se desplaza inmediatamente en la posición correcta
  • OnPageSelected no funciona para la primera página
  • El ViewPagerIndicator no es fácil con 1000 páginas
  • Ocultar Soft Keyboard en la aplicación para Android Desde fragmentos de ViewPager
  • Circular ViewPager que utiliza FragmentPagerAdapter
  • Fragment onResume () no se llama cuando se utiliza FragmentPagerAdapter
  • TabLayout con ViewPager no funciona dentro de fragmento Android
  • Cómo determinar cuándo Fragmento se vuelve visible en ViewPager
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.