Позиция getItem() не всегда правильная! Иногда он будет показывать 0,1,2,3,4, тогда, если я вернусь, он покажет другую позицию (4,2,3,1,0). Как правильно использовать «позицию», если мне нужно, чтобы позиция передавалась в массив/карту дерева???
02-18 20:07:22.453 11479-11479/com.app E/aaa﹕ position created:0
02-18 20:07:22.453 11479-11479/com.app E/aaa﹕ position created:1
02-18 20:07:29.053 11479-11479/com.app E/aaa﹕ position created:2
02-18 20:07:35.503 11479-11479/com.app E/aaa﹕ position created:0
Линия:
return SingleCard.newInstance(get_all_cards_as_objects().get(position));
Нужна правильная позиция, а не та, которая рендерится в память! Мне нужно, чтобы данные внутри фрагмента менялись с фактической позицией страницы. Он будет знать данные для захвата (с карты) на основе фактического положения страницы.
final ViewPager pager = (ViewPager) findViewById(R.id.pager);
this.parent_nested_fragment_activity = this;
pager.setAdapter(new FragmentPagerAdapter(getSupportFragmentManager()){
private final int PARENT_COUNT = get_all_cards_as_objects().size();
@Override
public Object instantiateItem(ViewGroup container, final int position) {
Object obj = super.instantiateItem(container, position);
pager.setObjectForPosition(obj, position);
return obj;
}
@Override
public Fragment getItem(int position) {
Toast.makeText(CardDealer.this,"Selected page position: " + position, Toast.LENGTH_SHORT).show();
Log.e("aaa", "position created:" + position);
return SingleCard.newInstance(get_all_cards_as_objects().get(position));
}
У меня такая же проблема, но этот ответ не помог: FragmentPagerAdapter getItem неправильная позиция
Я также не уверен, как реализовать этот ответ в своих фрагментах: время в FragmentPagerAdapter
Например: Странные исчезающие фрагменты с FragmentPagerAdapter
В основном я изучил:
pager.getCurrentItem();
Как мне передать это в уже созданный фрагмент с помощью getItem();
return SingleCard.newInstance(get_all_cards_as_objects().get(pager.getCurrentItem()));