您的位置:首页 > 其它

解决ViewPager.OnPageChangeListener 和 OnClickListener 冲突的有关问题

2016-05-06 16:23 567 查看
解决ViewPager.OnPageChangeListener 和 OnClickListener 冲突的问题如果这两种监听事件同时存在那么直接让paperView 设置这两种监听 是不会响应点击事件的那么想通过点击图片返回原页面 就成为泡影其实只要把OnClick事件 加载到 paperView 要加载的 view 组的view 上 就可以实现该功能听起来有但饶,那么上代码简要代码如下:
public class FriendsCricleImgDetailActivity extends BaseActivity {

private ArrayList<View> listViews = null;
private ViewPager pager;
private ImgShowAdapter adapter;
private int count;
private RelativeLayout photo_relativeLayout;
/**
* 对应ID图片数组
*/
private List<FriendsCricleImageListObject> list = new ArrayList<>();
/**
* 选中的ID
*/
private int selectNum = 0;
/**
* 选中的图片索引
*/
private TextView imgIndex;
private TextView imgBack;

public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_friends_cricle_img_detail);
init();

}

/**
* 初始化
*/
private void init() {
photo_relativeLayout = (RelativeLayout) findViewById(R.id.photo_relativeLayout);
imgIndex = (TextView) findViewById(R.id.imgIndex);
imgBack = (TextView) findViewById(R.id.imgBack);
imgBack.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
finish();
}
});
pager = (ViewPager) findViewById(R.id.viewpager);
photo_relativeLayout.setBackgroundColor(0x70000000);
pager.setOnPageChangeListener(pageChangeListener);
list = (List<FriendsCricleImageListObject>) getIntent().getSerializableExtra("imgList");
selectNum = getIntent().getIntExtra("selectNum", 0);
//初始化viewpaper中用到的view
for (int i = 0; i < list.size(); i++) {
initListViews(list.get(i).getImg());
}
adapter = new ImgShowAdapter(listViews);// 构造adapter
pager.setAdapter(adapter);// 设置适配器
pager.setCurrentItem(selectNum);//进入的时候 默认显示点击的那张图
imgIndex.setText((selectNum + 1) + "/" + list.size());
}

/**
* 初始化图片view 用于添加到viewPaper
*
* @param imgurl
*/
private void initListViews(String imgurl) {
if (listViews == null)
listViews = new ArrayList<View>();
ImageView img = new ImageView(this);// 构造textView对象
img.setBackgroundColor(0xff000000);
img.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.FILL_PARENT, ViewGroup.LayoutParams.FILL_PARENT));
ImageLoader.getInstance().displayImage(imgurl, img, BaseApp.getFriendsCricleDisplayImageOptions());
img.setOnClickListener(listener);
listViews.add(img);// 添加view
}

/**
* 点击事件必须加载图片上 方可奏效
*/
View.OnClickListener listener = new View.OnClickListener() {
@Override
public void onClick(View v) {
finish();
}
};
/**
* 滑动事件监听
*/
private ViewPager.OnPageChangeListener pageChangeListener = new ViewPager.OnPageChangeListener() {

public void onPageSelected(int arg0) {// 页面选择响应函数
count = arg0;
imgIndex.setText((count + 1) + "/" + list.size());//动态是是  当前是第几张图片
}

public void onPageScrolled(int arg0, float arg1, int arg2) {// 滑动中。。。
}

public void onPageScrollStateChanged(int arg0) {// 滑动状态改变
int x = arg0;
}

};

}
http://www.myexception.cn/mobile/1976244.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: