私は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
。テストとして、Android ドキュメントで提供されているZoomOutPageTransformerを使用しました。
ViewPager の子ビューが最初に読み込まれると、すべて正常に動作します。アイテムをクリックすると、ビューが更新されます。しかし、ViewPager を初めてスクロールした後、子ビューが適切にレンダリングされなくなります。アイテムをクリックすると、触覚フィードバックとクリック音が聞こえますが、ビューは以前の状態のままです。
ViewPager に変更があるたびに View を無効にしようとしましたが、これは役に立ちませんでした。
ViewPager 内で ListView を使用する場合にも同様の問題があるため、ビューの外にあるビューを GONE として設定しようとしましたが、これも機能しませんでした。