在android中,当滑动到另一个图像时,Viewpager给了我错误的位置
我的android应用程序中有一个在android中,当滑动到另一个图像时,Viewpager给了我错误的位置,android,android-viewpager,Android,Android Viewpager,我的android应用程序中有一个ViewPager,我想用ViewPager显示我用它滑动的每个图像的特定信息,但是我在ViewPager中得到了错误的信息或位置,它在位置上增减不正确,它先增加两倍,请帮我解决它,我的代码如下: 代码: private class ImagePagerAdapter extends PagerAdapter { @Override public int getCount() { return subca
ViewPager
,我想用ViewPager
显示我用它滑动的每个图像的特定信息,但是我在ViewPager
中得到了错误的信息或位置,它在位置上增减不正确,它先增加两倍,请帮我解决它,我的代码如下:
代码:
private class ImagePagerAdapter extends PagerAdapter {
@Override
public int getCount() {
return subcategory.size();
}
@Override
public boolean isViewFromObject(View view, Object object) {
return view == ((ImageView) object);
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
Context context = DetailsActivity.this;
ImageView imageView;
imageView = new ImageView(context);
try {
int padding = context.getResources().getDimensionPixelSize(
R.dimen.padding_medium);
imageView.setPadding(padding, padding, padding, padding);
imageView.setScaleType(ImageView.ScaleType.FIT_XY);
area.setText(subcategory.get(position).get(
Const.TAG_CATAEGORY_NAME));
System.out
.println("::::::::::::::::INFO INDEX:::::::::::::::::"
+ position);
imageLoader.displayImage(
subcategory.get(position).get(Const.TAG_BIG_IMG),
imageView, options);
System.out
.println("::::::::::::::::IMAGE INDEX:::::::::::::::::"
+ position);
opkey1.setText(subcategory.get(position).get("opk1"));
opkey2.setText(subcategory.get(position).get("opk2"));
opval1.setText(subcategory.get(position).get("opv1"));
opval2.setText(subcategory.get(position).get("opv2"));
((ViewPager) container).addView(imageView, 0);
} catch (NotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return imageView;
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
((ViewPager) container).removeView((ImageView) object);
}
}
ViewPager将预加载一个(默认情况下)寻呼机,以便用户可以顺利滑动。
看
PagerAdapter.InstanceItem(视图组容器,int位置)
此处的位置将不等于ViewPager.getCurrentItem()
如果您不想让用户刷当前位置,请使用
ViewPager.addOnPageChangeListener(OnPageChangeListener listener)
ViewPager将预加载一个(默认情况下)寻呼机,以便用户可以顺利滑动。
看
PagerAdapter.InstanceItem(视图组容器,int位置)
此处的位置将不等于ViewPager.getCurrentItem()
如果您不想让用户刷当前位置,请使用
ViewPager.addOnPageChangeListener(OnPageChangeListener listener)
我也面临同样的问题。我找到了以下解决方案: 在创建viewpager的活动的onCreate中,在创建viewpager之后,我添加了一个新的onpagechangelistener,并使用了onpagescrolled
ViewPager viewPager = (ViewPager)findViewById(R.id.pager2);
viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
if (positionOffsetPixels == 0) {
//Do something on selected page at position
mtextView.setText(String.valueOf(position + 1) + " of " + String.valueOf(totalimages) + " photos.");
}
}
});
我在其他地方找到了这些方法,我不记得了,但它对我很有效。我希望我能有所帮助。我也遇到了同样的问题。我找到了以下解决方案: 在创建viewpager的活动的onCreate中,在创建viewpager之后,我添加了一个新的onpagechangelistener,并使用了onpagescrolled
ViewPager viewPager = (ViewPager)findViewById(R.id.pager2);
viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
if (positionOffsetPixels == 0) {
//Do something on selected page at position
mtextView.setText(String.valueOf(position + 1) + " of " + String.valueOf(totalimages) + " photos.");
}
}
});
我在其他地方找到了这些方法,我不记得了,但它对我很有效。我希望我能有所帮助。这是默认行为,如果你想获得正确的位置,可以使用
viewpager.getCurrentPosition()代码>这是默认行为,如果想要获得正确的位置,可以使用viewpager.getCurrentPosition()代码>谢谢charlie…救了我..Bollois是一个很好的答案,但问题是每次点击viewpager都会有五个以上的呼叫:)谢谢charlie…救了我..Bollois是一个很好的答案,但问题是每次点击viewpager都会有五个以上的呼叫:)