2013-01-11 2 views
5

ViewPager에 PageTransfomer를 적용 했으므로 훌륭하게 작동하지만 ViewPager에 PageTransformer를 설정하는 즉시 페이지의 변환을 시작하고 싶습니다. 난 이미 시도 :가능한 한 빨리 PageTransformer를 PagerView에 적용하십시오.

  • setCurrentItem (int)를
  • setCurrentItem (INT, TRUE)
  • beginFakeDrag(), fakeDragBy (플로트), endFakeDrag()
  • 무효화()
  • 대해 getAdapter () .notifyDataSetChanged()

나는이 모든 것을 내 활동의 onCreate에서 시도했지만 어쩌면 틀렸어.

단서가 있습니까?

감사

답변

2

이 가지 중 하나를 시도해보십시오

  1. 은 핸들러의 코드를 넣어 onPostCreate()
  2. 의 코드를 넣어; 즉 new Handler().post(new Runnable() { /* your code */ });
+2

감사합니다. Handler와 beginFakeDrag(), fakeDragBy (0f), endFakeDrag()와 함께 작동합니다. – magiccyril

4

올레그의 대답은 내 앱에 대한 아래 코드에서 사용되었습니다.

내 결과는 beginFakeDrag()의 결과가 _invalidatePageTransformer임을 확인하는 것입니다. 참고 : 방향이 나의 조각에

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); 
} 

편집을 LoaderCallback<Cursor> -methods 내부

  • 을 변경하는 경우

    나는

    • 내부에서 sendInvalidatePageTransformer()를 호출이 코드를 cust 안에있다. om ViewPager-subclass

  • 관련 문제