2013-03-29 75 views
1

我利用Viewpager在我的應用程序..向左或向右用戶刷卡的時候,我會告訴一個或下一個圖像 - 基本類應用與(圖像)的幻燈片..在ViewPager中翻轉?

如果用戶點擊應用程序,我想在ViewPager中翻轉視圖。每個視圖背後的視圖 - 用戶必須能夠在觀看時翻轉視圖。

這是代碼,

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main);   

    .... <some code> .... 

    viewPager = (ViewPager) findViewById(R.id.main_viewpager); 

    ImagePagerAdapter adapter = new ImagePagerAdapter(); 
    viewPager.setAdapter(adapter); 

    PageListener pageListener = new PageListener(); 
    viewPager.setOnPageChangeListener((OnPageChangeListener) pageListener); 

    final GestureDetector tapGestureDetector = new GestureDetector(this, new TapGestureListener()); 

    viewPager.setOnTouchListener(new OnTouchListener() { 
     public boolean onTouch(View v, MotionEvent event) { 
       tapGestureDetector.onTouchEvent(event); 
       return false; 
     } 
    }); 
} 

private class TapGestureListener extends GestureDetector.SimpleOnGestureListener{ 
    @Override 
    public boolean onSingleTapConfirmed(MotionEvent e) { 

    // HERE I CAPTURED SINGLE TAP.. HOW DO I CHANGE THE VIEW OF VIEWPAGER? 
      return false; 
    } 
} 

回答

0

我想你應該設置的onTouchEvent的查看頁面內,而不是整個viewpager。 在ImageViewPagerAdapter,你有

@Override 
public Object instantiateItem(ViewGroup container, final int position) { 

當創建視圖,我承擔的ImageView,設置onTouchListener它,因此你必須是可觸及的視圖的引用。

翻轉本身看看this example,這很清楚。

編輯:

這裏我將文件從一個應用程序我做粘貼一個例子,我切斷了實際的代碼onclicklistener裏面,因爲它是很長,不相關的。我使用了這個方法,因爲在istantiateItem()中你創建了你想要附加偵聽器的視圖。

@Override 
public Object instantiateItem(ViewGroup container, final int position) { 
    Context context = MainActivity.this; 
    Log.e("InstantiateItem",Integer.toString(position)); 
     ImageView imageView = new ImageView(context); 

     imageView.setImageResource(mImages[position]); 

     imageView.setOnClickListener(new OnClickListener() { 
      public void onClick(View v) { 
      // do some stuf when clicked...to see if it works you could try 
      Log.e("Click on image",Integer.toString(position)); 
      } 
     }); 
     ((ViewPager) container).addView(imageView, 0); 

     return imageView; 

} 
+0

我試着設置onTouchListener的ImageView,但正在努力。你可以請張貼一些代碼或指出一些實際的例子嗎? – Naveen

+0

@確定,回答編輯! – lelloman

+0

@Naveen這種方法沒有運氣? – lelloman