Android - фрагмент для каждой вкладки

Я новичок в разработке Android. У меня есть активность, которая использует FragmentPagerAdapter для создания вкладок. Все работает отлично, за исключением того, что я хочу, чтобы каждая вкладка имела свой уникальный fragment.xml файл и сейчас все вкладки отображают один и тот же фрагмент (fragment_home.xml).

У меня есть подозрение, что проблема заключается в этом коде:

public View onCreateView(LayoutInflater inflater, 
                         ViewGroup container, 
                         Bundle savedInstanceState) 
{
        View rootView = inflater.inflate(R.layout.fragment_home, container, false);

        TextView textView = (TextView) rootView
            .findViewById(R.id.section_label);
        textView.setText(Integer.toString(getArguments()
            .getInt(ARG_SECTION_NUMBER)));

        return rootView; 
}

РЕДАКТИРОВАТЬ 1

Я добавил еще один класс Fragment для представления другого фрагмента. Имеет свой OnCreateView() метод, который надувает XML-файл с именем fragment_overview.xml и это прекрасно работает.

Теперь я все еще застрял с проблемой, когда оба фрагмента должны присутствовать на разных вкладках.

Код ниже создает экземпляр OverViewFragment в его getItem() метод. Возвращается только один фрагмент, так как мне сделать его из нескольких фрагментов?

public class SectionsPagerAdapter extends FragmentPagerAdapter {

    public SectionsPagerAdapter(FragmentManager fm) {
        super(fm);
    }

    @Override
    public Fragment getItem(int position) {
        // getItem is called to instantiate the fragment for the given page.
        // Return a PlaceholderFragment (defined as a static inner class
        // below).
        return OverviewFragment.newInstance(position + 1);
    }

    @Override
    public int getCount() {
        // Show 3 total pages.
        return 5;
    }

    @Override
    public CharSequence getPageTitle(int position) {
        Locale l = Locale.getDefault();
        switch (position) {
        case 0:
            return getString(R.string.tab1).toUpperCase(l);
        case 1:
            return getString(R.string.tab2).toUpperCase(l);
        }
        return null;
    }
}

1 ответ

Решение

Привет вам нужно создать отдельные фрагменты для каждой вкладки и связать с вашей позиции вкладки. Вы можете обратиться к следующему репозиторию, чтобы узнать, как это сделать. FragmentPageAdapter с вкладками

Другие вопросы по тегам