0

ViewPager のアニメーションをカスタマイズしたい。だから私は実装ViewPager.PageTransformerして呼び出します setPageTransformer()FragmentStatePagerAdapterまたはでうまく機能しましたFragmentPagerAdapter。しかし、そうではありませんPagerAdapter

私が呼び出すとsetPageTransformer()(何もPageTransformerしませんが)、ページがPagerAdapter一度表示され、最後のページを除いて自動的に閉じられます(二度と表示されません)。外すsetPageTransformer()と正常に動作します。

誰でも理由を知ることができますか?前もって感謝します。
このリンクのサンプル コードを使用できます。PagerAdapterの代わりに使用しFragmentPagerAdapterます。

編集ここに私が変更したコードがあります。

4

1 に答える 1

1

投稿されたサンプルコードはフラグメントを使用しているため、機能しないと思います。

あなたのAPIでPagerAdapter読むことができます:

内のページに入力するアダプターを提供する基本クラスViewPagerFragmentPagerAdapterまたはなど、これのより具体的な実装を使用することをお勧めしますFragmentStatePagerAdapter

PagerAdapter を実装するときは、少なくとも次のメソッドをオーバーライドする必要があります。

instantiateItem(ViewGroup, int)
destroyItem(ViewGroup, int, Object)
getCount()
isViewFromObject(View, Object)

FragmentPagerAdapterしたがって、単に例を挙げて に変更することはできませんPagerAdpapter

更新 2014-01-14

コードを既存のプロジェクトにインポートして、ViewPager.

私は間違いを見つけたと思います!アダプターは正常に動作します (またPageTransformater)。メソッドをこれに変更instantiateItemPagerAdperて、これが機能しているかどうか教えてください。

@Override
public Object instantiateItem(ViewGroup container, int position) {
    // TODO Auto-generated method stub
    View view = LayoutInflater.from(mContext).inflate(R.layout.program_item, null);
    /** 
        // This line cause the strange behaviour
        view.setLayoutParams(mParams);
    **/
    ((ImageView) view.findViewById(R.id.img)).setImageResource(R.drawable.default_program);
    container.addView(view);
    return view;
}
于 2014-01-13T11:46:21.357 に答える