0
在我的活动中,我有一个OnPageChangeListener
和查看传呼机实现。viewPager不刷新instantiateItem
论功能onPageSelected
我调用函数名viewPagerHandler,当我把所有的逻辑单viewPager页(按钮,操作取决于当前页面等)
public class ActivityClass extends Activity implements ViewPager.OnPageChangeListener, View.OnClickListener{
protected void onCreate(Bundle savedInstanceState) {
viewPager=(ViewPager)findViewById(R.id.Pager);
adapter= new
ViewPageAdapter(ActivityClass.this,list,imagesList);
viewPager.setAdapter(adapter);
viewPager.setCurrentItem(0);
viewPager.addOnPageChangeListener(ActivityClass.this);
}
@Override
public void onClick(View v) {
}
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
}
@Override
public void onPageSelected(int position) {
this.position=position;
viewPagerHandler(viewPager.findViewWithTag(position),position);
}
@Override
public void onPageScrollStateChanged(int state) {
}
public View viewPagerHandler(final View view, final int position){
//ALL LOGIC BUTTONS ACTIONS ETC.
view.invalidate();
return view;
}
}
public class ViewPageAdapter extends PagerAdapter{
@Override
public Object instantiateItem(final ViewGroup container, final int position) {
final View itemView = LayoutInflater.from(mContext).inflate(R.layout.art_work_item, container, false);
itemView.setTag(position);
container.add(itemView); // edited after suggested
if(mContext instanceof ActivityClass && position==0) //The page listener in ActivityClass is trigger only when page is changed so i tried to hack it when the viewPager is instantiate for the first time
return ((ActivityClass) mContext).viewPagerHandler(itemView,position);
return itemView;
}
}
编辑:逻辑完美的作品上第一个和最后一个项目。对于其他人来说,视图并不令人耳目一新(不过它仍然有效,因为我点击了按钮后颜色发生了变化,当我点击它们,然后滑动到下一个项目并返回到前一个颜色时,颜色被更改为触发器)
所以我应该返回容器我instantiateItem? – Expiredmind
@Expiredmind不返回itemView,但添加到容器 – Raghavendra
没有只是在返回语句前添加此行 –