PagerAdapter returns Multi View Pager 的位置错误
PagerAdapter returns wrong position for Multi View Pager
我正在通过调整页边距实现类似视图寻呼机的 caurosel。我可以像下面那样实现
但是我遇到了 PagerAdapter 的问题
@Override
public Object instantiateItem(ViewGroup container, int position) {
View view= inflater.inflate(R.layout.mylayout, null);
//
Button btn=(Button)view.findViewById(R.id.button1);
btn.setTag(position);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Log.e("position",v.getTag()+"");
}
}
return imgView;
}
虽然我正在设置标签,但我只能为中心页面(所选项目)获得正确的位置,但是当我点击左侧页面的按钮时,它 returns 错误的值。
关于这个问题我已经搜索了很多,到目前为止我找不到解决方案。
寻求您的帮助。
谢谢
你可以使用 RecyclerView
LinearLayoutManager layoutManager = ...
recyclerView.setLayoutManager(layoutManager);
//when you want horizontal
layoutManager.setOrientation(context,LinearLayoutManager.HORIZONTAL,false);
//when you want vertical
layoutManager.setOrientation(context,LinearLayoutManager.VERTICAL,false);
PagerAdapter 没有问题。实际问题是由于第三方库引起的,我将其用作包装器来为视图设置动画。
我正在通过调整页边距实现类似视图寻呼机的 caurosel。我可以像下面那样实现
但是我遇到了 PagerAdapter 的问题
@Override
public Object instantiateItem(ViewGroup container, int position) {
View view= inflater.inflate(R.layout.mylayout, null);
//
Button btn=(Button)view.findViewById(R.id.button1);
btn.setTag(position);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Log.e("position",v.getTag()+"");
}
}
return imgView;
}
虽然我正在设置标签,但我只能为中心页面(所选项目)获得正确的位置,但是当我点击左侧页面的按钮时,它 returns 错误的值。
关于这个问题我已经搜索了很多,到目前为止我找不到解决方案。
寻求您的帮助。
谢谢
你可以使用 RecyclerView
LinearLayoutManager layoutManager = ...
recyclerView.setLayoutManager(layoutManager);
//when you want horizontal
layoutManager.setOrientation(context,LinearLayoutManager.HORIZONTAL,false);
//when you want vertical
layoutManager.setOrientation(context,LinearLayoutManager.VERTICAL,false);
PagerAdapter 没有问题。实际问题是由于第三方库引起的,我将其用作包装器来为视图设置动画。