Android PageTransformer убивает функцию просмотра

Я использую PagerSlidingTabStrip, чтобы иметь ViewPager с вкладками в макете Android.

Мой пользовательский адаптер ViewPager выглядит следующим образом:

private static class SlidingPagerAdapter extends PagerAdapter implements IconTabProvider {

    private final List<Tab> mItems;
    private final LayoutInflater mInflator;

    public SlidingPagerAdapter(Context context, List<Tab> tabs) {
        mItems = tabs;
        mInflator = LayoutInflater.from(context);
    }

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

    @Override
    public boolean isViewFromObject(View v, Object obj) {
        return v == (View) obj;
    }

    @Override
    public void destroyItem(ViewGroup container, int position, Object object) {
        container.removeView((View) object);
    }

    @Override
    public Object instantiateItem(ViewGroup container, int position) {
        Tab data = mItems.get(position);
        View child = mInflator.inflate(data.mLayoutResource, container, false);
        container.addView((View) child, 0);
        return child;
    }

    @Override
    public int getPageIconResId(int position) {
        return mItems.get(position).mIconResource;
    }

}

Проблема возникает, когда я устанавливаю PageTransformer в ViewPager. В качестве теста я использовал ZoomOutPageTransformer, представленный в документации по Android.

Когда дочернее представление из ViewPager загружается впервые, все работает нормально. Я могу щелкать элементы, и представления обновляются. Но после первой прокрутки ViewPager дочерние представления просто перестают правильно отображаться. Если я нажимаю на элемент, я чувствую тактильную обратную связь и звук щелчка, но вид остается в прежнем состоянии.

Я пытался аннулировать представление каждый раз, когда в ViewPager происходят изменения, но это не помогло.

Существуют подобные проблемы при использовании ListView внутри ViewPager, поэтому я попытался установить представления, которые находятся вне поля зрения, как GONE, но это тоже не сработало.


person liarspocker    schedule 12.02.2015    source источник
comment
версия Android, в которой вы столкнулись с проблемой?   -  person Blackbelt    schedule 12.02.2015
comment
Леденец 5.0.1. Я еще не пробовал другие устройства   -  person liarspocker    schedule 12.02.2015
comment
ты отключил аппаратное ускорение?   -  person Blackbelt    schedule 12.02.2015
comment
Да, я пробовал аппаратно включать и выключать   -  person liarspocker    schedule 13.02.2015
comment
то же самое здесь, преобразователь страниц отлично работает, когда устройство находится под API 21, но полностью перестает работать, если устройство находится на леденце, я еще не нашел решения...   -  person CLucera    schedule 08.04.2015
comment
То же самое здесь, я только что запустил новое приложение, и как только я прокручиваю несколько раз, я начинаю видеть странные вещи, например, представления не отображаются должным образом.   -  person Lancelot    schedule 15.07.2016
comment
@liarspocker, ты нашел какие-нибудь решения для этого?   -  person Jyoti JK    schedule 15.05.2018


Ответы (1)


У меня была аналогичная проблема, и я смог ее исправить, следуя ответу на этот вопрос SO: применить PageTransformer к PagerView как можно скорее За исключением того, что я использовал .0001f в fakeDragBy()

Хаки, но сработало.

person StiggyBr0    schedule 07.04.2015