【发布时间】:2015-02-12 20:54:45
【问题描述】:
我正在使用 PagerSlidingTabStrip 在 Android 布局中使用带有标签的 ViewPager。
我的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 时,问题就出现了。作为测试,我使用了 Android 文档中提供的ZoomOutPageTransformer。
第一次加载 ViewPager 中的子视图时,一切正常。我可以单击项目并更新视图。但是在我第一次滚动 ViewPager 之后,子视图就会停止正确渲染。如果我点击一个项目,我可以感觉到触觉反馈和点击声音,但视图仍保持之前的状态。
我尝试在每次 ViewPager 发生更改时使 View 无效,但这没有帮助。
有similar problems when using a ListView inside a ViewPager,所以我尝试将视野外的视图设置为GONE,但这也没有用。
【问题讨论】:
-
您遇到问题的 android 版本?
-
棒棒糖 5.0.1。我还没有尝试过其他设备
-
你是否禁用了硬件加速?
-
是的,我试过打开和关闭硬件
-
这里也一样,当设备在 api 21 下时,页面转换器工作正常,但如果设备在棒棒糖上,则完全停止工作,我还没有找到任何解决方案......
标签: android android-viewpager android-pagetransformer