ViewPager复用View

    xiaoxiao2021-03-25  96

    /** * 当instantiateItem(ViewGroup container, int position)执行的时候 * 判断list中有没有可以使用的View,如果有,取出复用,并将该View移出List * 当destroyItem(ViewGroup container, int position, Object object)执行的时候 * 将View放入list的末尾,等待复用 */ private class PreviewPagerAdapter extends PagerAdapter{ LinkedList<View> viewLinkedList = new LinkedList<>(); @Override public int getCount() { return 0; } @Override public boolean isViewFromObject(View view, Object object) { return view == object; } @Override public Object instantiateItem(ViewGroup container, int position) { View itemView; if (viewLinkedList.size() > 0) { itemView = viewLinkedList.getFirst(); viewLinkedList.removeFirst(); } else { itemView = LayoutInflater.from(PreviewImageActivity.this).inflate(R.layout.item_preview, null); } container.addView(itemView); return itemView; } @Override public void destroyItem(ViewGroup container, int position, Object object) { container.removeView((View) object); if (object != null) { viewLinkedList.addLast((View) object); } } }
    转载请注明原文地址: https://ju.6miu.com/read-12759.html

    最新回复(0)