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

来源:互联网 发布:围棋记谱软件安卓版 编辑:程序博客网 时间:2024/06/07 00:17
解决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
0 0