2013-01-11 19 views
5

私はPagePransformerをViewPagerに適用していますが、うまくいきますが、PageTransformerをViewPagerに設定するとすぐにページの変換を開始します。 私はすでに試した:PageTransformerをできるだけ早くPagerViewに適用する

  • setCurrentItem(int型)
  • setCurrentItem(int型、真)
  • beginFakeDrag()、fakeDragBy(フロート)、endFakeDrag()
  • 無効()
  • getAdapter( ).notifyDataSetChanged()

私はこれらのすべてを私の活動のonCreateで試しましたが、多分私は間違っています。

誰か手掛かりがありますか?

おかげ

答えて

2

は、これらのもののいずれかを試してみてください。

  1. ハンドラ内のコードを入れてonPostCreate()
  2. にコードを配置。すなわちnew Handler().post(new Runnable() { /* your code */ });
+2

これはハンドラとbeginFakeDrag()、fakeDragBy(0f)、endFakeDrag() – magiccyril

4

Olegの回答に基づいて私のアプリの下のコードが使用されます。

私の追加は、beginFakeDrag()の返信結果を_invalidatePageTransformerの中で確認することです。

向きが私の断片でLoaderCallback<Cursor> -methods

private Handler handler = new Handler() 
{ 
     public void handleMessage(Message msg) 
     { 
       switch(msg.what) 
       { 
         case 0: 
           _invalidatePageTransformer(); 
           break; 
       } 
     } 
}; 

private void _invalidatePageTransformer() 
{ 
     //no need to invalidate if we have no adapter or no items 
     if (this.getAdapter() != null && this.getAdapter().getCount() > 0) 
     { 
       //import check here, only fakeDrag if "beginFakeDrag()" returns true 
       if (this.beginFakeDrag()) 
       { 
         this.fakeDragBy(0f); 
         this.endFakeDrag(); 
       } 
     } 
} 

public void sendInvalidatePageTransformer() 
{ 
     this.handler.sendEmptyMessage(0); 
} 

EDIT内

  • を変更したときに、私は

    • 内部からsendInvalidatePageTransformer()を呼び出す:注:このコード顧客の中にありますom ViewPager-subclass

  • 関連する問題