Las pestañas de TabLayout no se muestran

Tengo una actividad principal, que aloja un fragmento, que a su vez recibe un TabLayout (con un ViewPager). La barra de pestañas se muestra, ya que las pestañas no se muestran.

Aquí está mi código en la actividad principal para mostrar el fragmento de host:

Fragment fragment = new BMITabsFragment(); FragmentManager fragmentManager = getSupportFragmentManager(); fragmentManager.beginTransaction().replace(R.id.content_frame, fragment).addToBackStack(Constants.BMI_TABS_FRAGMENT).commit(); 

Aquí está mi Fragmento que alberga el TabLayout, que es BMITabsFragment (sa):

 public class BMITabsFragment extends Fragment { ... @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); if (getArguments() != null) { mParam1 = getArguments().getString(ARG_PARAM1); mParam2 = getArguments().getString(ARG_PARAM2); } } @Override public void onViewCreated(View view, Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); // Get the ViewPager and set it's PagerAdapter so that it can display items ViewPager viewPager = (ViewPager) view.findViewById(R.id.viewpager); viewPager.setAdapter(new BMIFragmentPagerAdapter(getActivity().getSupportFragmentManager(), getActivity())); // Give the TabLayout the ViewPager TabLayout tabLayout = (TabLayout) view.findViewById(R.id.sliding_tabs); tabLayout.setupWithViewPager(viewPager); } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // Inflate the layout for this fragment View view = inflater.inflate(R.layout.fragment_bmitabs, container, false); return view; } ... } 

Este es mi FragmentPagerAdapter:

 public class BMIFragmentPagerAdapter extends FragmentPagerAdapter { final int PAGE_COUNT = 2; private FragmentManager fragmentManager; private Context context; public BMIFragmentPagerAdapter(FragmentManager fm, Context context) { super(fm); this.context = context; this.fragmentManager = fm; } public BMIFragmentPagerAdapter(FragmentManager fm) { super(fm); fragmentManager = fm; } @Override public CharSequence getPageTitle(int position) { String[] pageTitles = context.getResources().getStringArray(R.array.page_titles_array); return pageTitles[position]; } @Override public Fragment getItem(int position) { SharedPreferences prefs = context.getSharedPreferences(Constants.SHARED_PREFS_FILE, 0); long patientId = prefs.getLong(Constants.SELECTED_PATIENT_ID, 1); Fragment fragment = null; switch (position){ case 0: return BMITabelleFragment.newInstance(patientId); case 1: return BMIChartFragment.newInstance(patientId); default: return BMITabelleFragment.newInstance(patientId); } } @Override public int getCount() { return PAGE_COUNT; } } 

Y este es el fragmento_bmitabs.xml:

 <?xml version="1.0" encoding="utf-8"?> 

 <android.support.design.widget.TabLayout android:id="@+id/sliding_tabs" android:layout_width="match_parent" android:layout_height="wrap_content" app:tabMode="scrollable" /> <android.support.v4.view.ViewPager android:id="@+id/viewpager" android:layout_width="match_parent" android:layout_height="0px" android:layout_weight="1" android:background="@android:color/white" /> </LinearLayout> 

Mi código se basa en la Guía para Android de Google en https://github.com/codepath/android_guides/wiki/Google-Play-Style-Tabs-using-TabLayout

Lo que me falta aquí?

Nota: Estoy usando AppCompatActivity y las bibliotecas de soporte v4 y v7 y la biblioteca com: android: support: design

¡Tengo el mismo problema! Pero esto también me arregla.

 tabLayout.post(new Runnable() { @Override public void run() { tabLayout.setupWithViewPager(viewPager); } }); 

https://code.google.com/p/android/issues/detail?id=180462

Como @ Nataniel Ford, dijo, esto debería un error, cambio de usar la biblioteca de diseño 23.0.1.google lo arregló, por lo que cambiar build.gradle para compile 'com.android.support:design:23.0.1' . Ps: también debes cambiar tu compileSdkVersion a 23

Establecer iconos de pestaña después de setupWithViewPager()

 private void setTabs { tabLayout.setupWithViewPager(viewPager); setupTabIcons(); } private void setupTabIcons() { tabLayout.getTabAt(0).setIcon(tabIcons[0]); tabLayout.getTabAt(1).setIcon(tabIcons[1]); tabLayout.getTabAt(2).setIcon(tabIcons[2]); } 

Si está usando android:tabPadding atributo en Tablayout de archivo xml, quítelo.

  • Usando un FragmentTabHost con un ViewPager
  • Android DrawerLayout no funciona con ViewPager?
  • ¿Cómo hacer el FAB evitar ser movido en ViewPager, sin embargo, ser una parte del fragmento dentro?
  • Fragmentos en ViewPager se recrean
  • Contenido de Viewpager perdido en rotación
  • Cambiar fragmento viewpager por un botónClick
  • En viewpager, Setadapter y SetCurrentItem eliminar las transformaciones establecidas por pagetransform
  • Fragmento Entrada recursiva a executePendingTransactions Error
  • Listview no actualizar en fragmento con las pestañas viewpager
  • Android.content.res.Resources $ NotFoundException: No se puede encontrar el recurso ID # 0xffffffff
  • PagerTabStrip tabs alineación a la izquierda
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.