Возврат одного и того же фрагмента для нескольких вкладок

58
5

У меня есть 3 вкладки, но у меня есть один фрагмент. Можно ли использовать один фрагмент для 3 вкладок?

В настоящее время у меня это в моем FragmentPagerAdapter:

@Override
public Fragment getItem(int position) {
if (position == 0) {
return new FragmentTwo(region,"1");
} else if(position == 1){
return new FragmentTwo(region,"2");
}
return new FragmentTwo(region,"3");
}

Но только отображение всех данных на одной вкладке.

Я редактировал свой код, но все же получаю все данные на одной вкладке. В данный момент:

@Override
public Fragment getItem(int position) {
return FragmentTwo.newInstance(region, position);
}

&&

static FragmentTwo newInstance(String region,int position) {
FragmentTwo frag=new FragmentTwo();
Bundle args=new Bundle();
args.putInt("KEY_POSITION", position);
args.putString("REGION", region);
if(position == 0){
args.putString("TYPE","A");
}
else if(position == 0){
args.putString("TYPE","B");
}
else{
args.putString("TYPE","C");
}
frag.setArguments(args);

return(frag);
}

Для создания моего FragmentPagerAdapter я вызываю getSupportFragmentManager();

спросил(а) 2015-01-21T00:47:00+03:00 5 лет, 9 месяцев назад
1
Решение
58

Да, вы можете создать экземпляр вашего FragmentTwo, сохранить его в поле/переменной и использовать его в качестве возвращаемых данных в своей функции.

Следует отметить, что вы не должны использовать конструкторы с параметрами для фрагментов. Используйте Bundle с аргументами. Конструкторы с параметрами потенциально могут вызвать проблемы с фрагментами.

Взгляните на это сообщение, касающееся этого: Лучшая практика для создания экземпляра нового Android-фрагмента

ответил(а) 2015-01-21T01:08:00+03:00 5 лет, 9 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема