Вкладки TabLayout не отображаются

У меня есть основное действие, в котором размещается фрагмент, который, в свою очередь, содержит TabLayout (с ViewPager). Отображается панель вкладок, baut сами вкладки не отображаются.

Вот мой код в основном действии для отображения фрагмента хоста:

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

Вот мой фрагмент, в котором находится TabLayout, 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; } ... } 

Это мой 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; } } 

И это файл fragment_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> 

Мой код основан на Руководстве Google Android по адресу https://github.com/codepath/android_guides/wiki/Google-Play-Style-Tabs-using-TabLayout

Что мне здесь не хватает?

Примечание. Я использую AppCompatActivity и библиотеки поддержки v4 и v7 и com: android: support: design library

У меня такая же проблема! Но это тоже исправить.

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

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

Как @Nathaniel Ford сказал, это должно быть ошибка, я изменяю использовать библиотеку дизайна 23.0.1.google исправил ее, поэтому измените build.gradle на compile 'com.android.support:design:23.0.1' . Ps: вы также должны изменить свой compileSdkVersion на 23

Задать значки вкладок после 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]); } 

Если вы используете атрибут android:tabPadding в Tablayout из xml-файла, удалите его.

Intereting Posts
Как портировать собственный код c на Android "Не удалось получить wglGetExtensionsStringARB" error ListView не прокручивается до конца, когда клавиатура использует Изменить формат даты строки и установить в TextView в Android? Установите повторяющийся сигнал тревоги в определенное время каждый день Полоса действий, перемещающаяся при замене фрагментом Webview не показывает Html Properlly Не удается отправить UDP-пакеты с компьютера разработки на Android-эмулятор Android. У указанного дочернего элемента уже есть родитель. Вы должны сначала вызвать removeView () родителя ребенка Пользовательский календарный день в android Не удалось загрузить карту. Ошибка при обращении к серверам Google. Вероятно, это проблема аутентификации Как я могу извлечь нормали, текстуры, вершины, индексы из файла blender .obj в файл .h? Как загрузить URL-образ в износе android? Проверка Wi-Fi включен или нет на Android Начать новую работу и завершить текущий в Android?