如何设置OnPageChangeListener为多ViewPagers [英] How to set OnPageChangeListener for Multiple ViewPagers
问题描述
我使用这个循环来定义我的ViewPagers:
的LinearLayout llMain;
PagerAdapter [] pAdapter =新PagerAdapter [20];
ViewPager [] =寻呼机新ViewPager [20];的for(int i = 0; I< 20;我++){
pAdapter [I] =新AwesomePagerAdapter();
寻呼机[I] =新ViewPager(本);
寻呼机[I] .setAdapter(pAdapter [I]);
IfinAwesomePager [I] .setOnPageChangeListener(新OnPageChangeListener(){
@覆盖
公共无效onPageScrollStateChanged(INT为arg0){}
@覆盖
公共无效onPageScrolled(INT为arg0,ARG1浮球,诠释ARG2){} @覆盖
公共无效使用onPageSelected(INT为arg0){
//这我ViewPagers之一,这里已经改变了吗?
}
});
llMain.addView(寻呼机[I]);
}
我
如何知道我的哪些ViewPagers之一OnPageChangeListener()?改为
谢谢!
我使用这个循环来定义我的ViewPagers
块引用>这是一个不寻常的模式。
我如何知道我的哪些ViewPagers之一OnPageChangeListener()?改为
块引用>创建一个类实现
OnPageChangeListener
。有一流的乘坐ViewPager
在构造函数和稳守在数据成员的值。使用这个类,而不是当前的匿名内部类的监听器连接到寻呼机。I am using this for loop to define my ViewPagers:
LinearLayout llMain; PagerAdapter[] pAdapter = new PagerAdapter[20]; ViewPager[] pager = new ViewPager[20]; for(int i=0;i<20;i++){ pAdapter[i] = new AwesomePagerAdapter(); pager[i] = new ViewPager(this); pager[i].setAdapter(pAdapter[i]); IfinAwesomePager[i].setOnPageChangeListener(new OnPageChangeListener() { @Override public void onPageScrollStateChanged(int arg0) {} @Override public void onPageScrolled(int arg0, float arg1, int arg2) {} @Override public void onPageSelected(int arg0) { //which one of my ViewPagers has been changed here? } }); llMain.addView(pager[i]); }
How do I know which one of my ViewPagers was changed in OnPageChangeListener() ?
Thanks!
解决方案I am using this for loop to define my ViewPagers
That is an unusual pattern.
How do I know which one of my ViewPagers was changed in OnPageChangeListener() ?
Create a class that implements
OnPageChangeListener
. Have that class take theViewPager
in the constructor and hold onto that value in a data member. Use that class instead of your current anonymous inner class for attaching a listener to the pager.这篇关于如何设置OnPageChangeListener为多ViewPagers的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!