Я делаю приложение, которое должно иметь 4 скользящих вкладки. Я нашел этот учебник: http://www.android4devs.com/2015/01/how-to-make-material-design-sliding-tabs.html?m=1, за которым я последовал, и он отлично поработал, но он показывает только, как сделать это с помощью двух вкладок ... Кто-то еще спросил об этом в комментариях, и ему ответили, чтобы сказать что-то, что дало мне много ошибок , Как мне заставить это работать с 4 вкладками вместо двух?4 Скользящие вкладки вместо 2
ответ
1) В MainActivity:
В строке 20, отрегулировать
int Numboftabs =2;
Для правильного количества вкладок желательно.
2) Повторите шаг 5 & 6 из учебника, но вместо того, чтобы сделать Tab1 & TAB2, сделать TAB3/4, ...
В основном вам нужно добавить класс Java файл + файл макет для каждой вкладке. Поэтому здесь мы идем:
Сделать tab_X.xml (X это номер/имя) со следующим содержанием
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="You Are In Tab X"
android:id="@+id/textView"
android:layout_centerVertical="true"
android:layout_centerHorizontal="true" />
</RelativeLayout>
Сделать ява класс TabX (заменить X с номером вкладки, или просто заменить с именем)
package com.android4devs.slidingtab;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
public class TabX extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View v =inflater.inflate(R.layout.tab_X,container,false);
return v;
}
}
3) Редактирование ViewPagerAdapter класс
Например или 3 вкладки вместо 2, измените следующий
//This method return the fragment for the every position in the View Pager
@Override
public Fragment getItem(int position) {
if(position == 0) // if the position is 0 we are returning the First tab
{
Tab1 tab1 = new Tab1();
return tab1;
}
else // As we are having 2 tabs if the position is now 0 it must be 1 so we are returning second tab
{
Tab2 tab2 = new Tab2();
return tab2;
}
}
Для
//This method return the fragment for the every position in the View Pager
@Override
public Fragment getItem(int position) {
if(position == 0) // if the position is 0 we are returning the First tab
{
Tab1 tab1 = new Tab1();
return tab1;
}
else if(position == 1)
{
Tab2 tab2 = new Tab2();
return tab2;
}
else if(position == 2)
{
Tab3 tab3 = new Tab3();
return tab3;
}
else if { .... } // add more as desired.
// but make sure that you use "else" instead of "else if" for the last tab.
}
Все должно работать после того, как вы сделали эти изменения. Я хочу упомянуть, что код, предоставленный/отредактированный, из учебника в вопросе OP.
Большое спасибо! На последнем шаге я получаю только одну ошибку: Отсутствует оператор return. что делать сейчас? – Spickle
Я понял: на последней вкладке вы не должны ставить иначе, если, а просто еще – Spickle
@Spickle Это верно :-). Добавлю это в свой ответ. Если этот ответ разрешил ваш вопрос, не могли бы вы пометить его как ответ? (нажмите галочку рядом с ответом). –
- 1. Скользящие вкладки с ViewPager
- 2. андроид Скользящие Вкладки ошибка
- 3. Android: скользящие вкладки устарели?
- 4. Угловой материал Скользящие вкладки
- 5. Создать Настроить Скользящие вкладки
- 6. Скользящие вкладки Bootstrap (не содержимое вкладки)
- 7. Навигация Ящик и скользящие вкладки
- 8. Android скользящие вкладки, Fragment_Collection_Object Ошибка
- 9. Скользящие вкладки Android - 2 строки текста на вкладках
- 10. jQuery Скользящие вкладки: опции управления - СЛЕДУЮЩИЕ/ПРЕДЫДУЩИЕ
- 11. Скользящие вкладки с RecyclerView, показывающие пустоту
- 12. Боковые скользящие вкладки в приложении iPhone/iPad
- 13. Android: Скользящие вкладки (панель инструментов внизу)
- 14. Навигационный ящик + скользящие вкладки внутри фрагмента Android
- 15. 'num_of_cmt' - 4 вместо 2. Почему?
- 16. 2 Скользящие Divs горизонтально Jquery
- 17. Android Espresso: Скользящие вкладки с RecyclerViews на каждой вкладке
- 18. Скользящие вкладки, такие как новый Google Play Store 5.0
- 19. Причина использования 4-пространств вместо 2-пространств?
- 20. Скользящие вкладки с фрагментами RecycleView и прокручивание для обновления
- 21. Extjs 4: Программно переупорядочить вкладки вкладки
- 22. Скользящие вкладки Cordova-Framework7 из внешней ссылки не работают
- 23. Передача объекта на скользящие вкладки фрагмент на создание
- 24. Как добавить различные фрагменты контента в скользящие вкладки
- 25. Скользящие вкладки на панели инструментов с использованием конструкции материала
- 26. Скользящие дочерние окна
- 27. Печать вкладки разделения вместо пространств
- 28. Основание 4 - Разделы-Центрирующие вкладки
- 29. Как отключить скользящие вкладки, когда вы находитесь в контекстной панели действий, делая вкладки недоступными для кликов?
- 30. скользящие средние
Можете ли вы привести пример того, что вы пытались, что не работает? – andorov
Ниже приведен ответ, но я получаю одну ошибку на шаге 3 (отредактируйте класс ViewPagerAdapter). В конце я получаю сообщение об ошибке «Отсутствует заявление о возврате», у кого есть решение? – Spickle