Адаптер Viewpager не использует вид должным образом

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

Предположим, у меня есть все 60 представлений, которые позволяют ViewPager отображать, он отображается правильно, но он не использует повторно представления, пока я проведу пальцем по хвосту ArrayList, представления в предыдущем все еще не перезапускаются (я полагаю, из-за того, что крайний правый, затем снова проведите влево, никаких признаков перезагрузки)

Я искал много статей, но все так же, как я сделал ниже, не уверен, в чем смысл. (вот что я на самом деле сделал)

public class MyPagerAdapter extends PagerAdapter{
    ArrayList<View> viewList =  new ArrayList<View>();

    public MyPagerAdapter(ArrayList<View> list) {
        this.viewList = list;
    }

    @Override
    public int getCount() {
        return viewList.size();
}

    @Override
    public Object instantiateItem(ViewGroup container, int position) {
        View view = viewList.get(position);
        container.addView(view);
        return view;  
    }


    public void destroyItem(ViewGroup container, int position, Object view) {
        container.removeView((View)view);

    }



    @Override
    public boolean isViewFromObject(View view, Object object) {
        return view == (View)object;
    }

    @Override
    public void finishUpdate(View arg0) {

    }


    @Override
    public void restoreState(Parcelable arg0, ClassLoader arg1) {

    }

    @Override
    public Parcelable saveState() {
        return null;
    }

    @Override
    public void startUpdate(View arg0) {

    }   
}

1 ответ

Есть два адаптера, т.е. PagerAdapter & FragmentStatePagerAdapter,

PagerAdapter сохраняет страницы / просмотры в стеке и используется там, где общее количество используемых страниц меньше. С другой стороны, если количество страниц / представлений больше, чем рекомендуется, рекомендуется использовать FragmentStatePagerAdapter, поскольку он не сохраняет сохраненные представления / страницы в стеке, а создает их во время выполнения. FragmentStatePagerAdapter Перерабатывает ваши просмотры / страницы.

Я рекомендую использовать FragmentStatePagerAdapter.

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