AndroidImageSlider icon indicating copy to clipboard operation
AndroidImageSlider copied to clipboard

Very buggy - calls methods like instantiateItem for the same positions multiple times

Open anonym24 opened this issue 6 years ago • 3 comments

Very buggy - calls methods like instantiateItem for the same positions multiple times

When I add many sliders my app becomes not responsive

so if you have 10 slider it will call instantiateItem 10 times for the same image

anonym24 avatar Aug 26 '17 14:08 anonym24

I have added only 5 sliders:

https://github.com/daimajia/AndroidImageSlider/blob/master/library/src/main/java/com/daimajia/slider/library/Tricks/ViewPagerEx.java#L845

 ItemInfo addNewItem(int position, int index) {
        ItemInfo ii = new ItemInfo();
        ii.position = position;
        ii.object = mAdapter.instantiateItem(this, position);

        Log.i(TAG, "mAdapter.instantiateItem: " + position);

        ii.widthFactor = mAdapter.getPageWidth(position);
        if (index < 0 || index >= mItems.size()) {
            mItems.add(ii);
        } else {
            mItems.add(index, ii);
        }
        return ii;
    }



08-26 17:37:32.315 21625-21625/com.android.myapp I/ViewPagerEx: mAdapter.instantiateItem: 0
08-26 17:37:32.315 21625-21625/com.android.myapp I/ViewPagerEx: mAdapter.instantiateItem: 1
08-26 17:39:14.173 21625-21625/com.android.myapp I/ViewPagerEx: mAdapter.instantiateItem: 20
08-26 17:39:14.174 21625-21625/com.android.myapp I/ViewPagerEx: mAdapter.instantiateItem: 19
08-26 17:39:14.175 21625-21625/com.android.myapp I/ViewPagerEx: mAdapter.instantiateItem: 21
08-26 17:39:14.177 21625-21625/com.android.myapp I/ViewPagerEx: mAdapter.instantiateItem: 60
08-26 17:39:14.178 21625-21625/com.android.myapp I/ViewPagerEx: mAdapter.instantiateItem: 59
08-26 17:39:14.179 21625-21625/com.android.myapp I/ViewPagerEx: mAdapter.instantiateItem: 61
08-26 17:39:14.180 21625-21625/com.android.myapp I/ViewPagerEx: mAdapter.instantiateItem: 120
08-26 17:39:14.181 21625-21625/com.android.myapp I/ViewPagerEx: mAdapter.instantiateItem: 119
08-26 17:39:14.182 21625-21625/com.android.myapp I/ViewPagerEx: mAdapter.instantiateItem: 121
08-26 17:39:14.183 21625-21625/com.android.myapp I/ViewPagerEx: mAdapter.instantiateItem: 200
08-26 17:39:14.184 21625-21625/com.android.myapp I/ViewPagerEx: mAdapter.instantiateItem: 199
08-26 17:39:14.185 21625-21625/com.android.myapp I/ViewPagerEx: mAdapter.instantiateItem: 201
08-26 17:39:14.189 21625-21625/com.android.myapp I/ViewPagerEx: mAdapter.instantiateItem: 300
08-26 17:39:14.190 21625-21625/com.android.myapp I/ViewPagerEx: mAdapter.instantiateItem: 299
08-26 17:39:14.192 21625-21625/com.android.myapp I/ViewPagerEx: mAdapter.instantiateItem: 301
08-26 17:39:14.195 21625-21625/com.android.myapp I/ViewPagerEx: mAdapter.instantiateItem: 303
08-26 17:39:14.196 21625-21625/com.android.myapp I/ViewPagerEx: mAdapter.instantiateItem: 302
08-26 17:39:14.198 21625-21625/com.android.myapp I/ViewPagerEx: mAdapter.instantiateItem: 304

Why is it being called many times?

And eventually it calls protected void bindEventAndShow(final View v, ImageView targetImageView) many times

But it should just 5 calls..

anonym24 avatar Aug 26 '17 14:08 anonym24

seems something wrong with indicators, I just removed many things from your library: code with logic for indicators, some xml/attrs for indicators, description (text views), so I'm just left with ImageViews and ViewPager and now it seems works ok.

anonym24 avatar Aug 26 '17 15:08 anonym24

if you are using setCurrentItem() you will end up getting instantiateItem. look for settag() if you have it map certain values with images/view then retrieving them as findviewbytag

AditChauhan avatar Apr 06 '19 10:04 AditChauhan