我使用viewpager
來向用戶展示一些介紹,有兩個屏幕,當兩個屏幕都完成時我必須通過intent
。目前,我已實施viewpager
並通過了intent
。Viewpager當用戶從右到左滑動時調用intent
這是我迄今所做的:
編輯我的源代碼:
IntroActivity.java
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final ViewPager viewPager = (ViewPager) findViewById(R.id.view_pager);
final ImagePagerAdapter adapter = new ImagePagerAdapter();
viewPager.setAdapter(adapter);
OnPageChangeListener mListener = new OnPageChangeListener() {
@Override
public void onPageSelected(int arg0) {
// TODO Auto-generated method stub
selectedIndex = arg0;
System.out.println("Selecte Page: " + selectedIndex);
}
@Override
public void onPageScrolled(int arg0, float arg1, int arg2) {
// TODO Auto-generated method stub
if (mPageEnd && arg0 == selectedIndex) {
Log.d(getClass().getName(), "Okay");
mPageEnd = false;// To avoid multiple calls.
} else {
mPageEnd = false;
}
}
@Override
public void onPageScrollStateChanged(int arg0) {
// TODO Auto-generated method stub
if (selectedIndex == adapter.getCount() - 1) {
mPageEnd = true;
}
}
};
viewPager.setOnPageChangeListener(mListener);
}
private class ImagePagerAdapter extends PagerAdapter {
private int[] mImages = new int[] { R.drawable.libin1,
R.drawable.libin2 };
@Override
public int getCount() {
return mImages.length;
}
@Override
public boolean isViewFromObject(View view, Object object) {
return view == ((ImageView) object);
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
Context context = MainActivity.this;
ImageView imageView = new ImageView(context);
int padding = context.getResources().getDimensionPixelSize(
R.dimen.padding_medium);
imageView.setPadding(padding, padding, padding, padding);
imageView.setScaleType(ImageView.ScaleType.CENTER_INSIDE);
imageView.setImageResource(mImages[position]);
((ViewPager) container).addView(imageView, 0);
return imageView;
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
((ViewPager) container).removeView((ImageView) object);
}
}
通過這些,我能夠實現viewpager
,但你當用戶在第二個屏幕上時,可以看到我打電話給onTouchListener
。
我的問題是,如果用戶因爲touchListener()
而想再次看到第一個屏幕,只要用戶觸摸屏幕,就會調用該意圖。
我一直在使用GestureListener
爲fling
行動試過了,但也沒有我的幫助。
我該如何克服這個問題?
任何形式的幫助將不勝感激。所有我建議的
謝謝你爲你的答案太多了。有效。你是魔術師。 – Anupam 2013-04-22 09:14:59
你好是否有可能知道,如果用戶試圖刷卡viewpager在OnPageChange對監聽方法 – Prateek 2013-08-27 06:57:06
最後一頁@prateek儘量刷卡的最後一頁使衰落邊緣出現?如果是,那麼你可以通過'onPageScrollStateChanged()'和'onPageScrolled()'之間的組合來做到這一點。 – Luksprog 2013-08-27 07:39:56