zoukankan      html  css  js  c++  java
  • Gallery与imageView的onClick事件冲突解决方法

    上来,先说两句别的~~

    1。刚到新公司 ,遇见这样的问题,由于害怕给leader不好印象,所以解决的时候有点急,现在想想其实没有什么~~~

    2。放好心态

    介绍一下我代码的情况:

    gallery在activity中的代码 

         gallery.setAdapter(galleryAdapter);
            gallery.setSelection(getMax());
            gallery.setOnItemSelectedListener(new OnItemSelectedListener() {
    
                public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
                    try {
                        poster_position = position % GALLERY_IMAGE_COUNT;
                        setPosterPosition();
    
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                }
    
                public void onNothingSelected(AdapterView<?> parent) {
                    F.ot("onNothingSelected");
                }
            });

    galleryAdapter中getView的代码

    holder.imageView.setOnClickListener(new OnClickListener() {
                
                @Override
                public void onClick(View v) {
                    //gallery的中的imageview的Click事件
                    Message msg = new Message();
                    msg.arg1 = argPos;
                    msg.what = Activity_Home.GALLERY_ITEM_CLICK;
                    mHandler.sendMessage(msg);
                }
            });

    因为是这样子写的代码,所以只能处理到imageView的单击事件,忽略的gallery的touch事件

    基于这种情况,网上大概有两种方法。

    第一种:

    1.就是在galleryAdapter中的getView中,写出imageView的ontouch事件,

    2.然后分别在ACTION_DOWN,和ACTION_UP,记录下x度座标

    3.如果两个X,相减的值小于5,则认为是imageView的单击事件

    4.否则imageView的ontouch事件,返回false,交给gallery处理

    5.最后说一句,我用这种方法,没做出来,一直接受不到ACTION_UP事件。这个方法”小月“了

    第二种:

    把imageView的ontouch事件传到gallery中,让gallery处理。原因不明,直接上代码

    holder.poster.setOnTouchListener(new OnTouchListener() {
    
                @Override
                public boolean onTouch(View v, MotionEvent event) {
                    gallery.onTouchEvent(event);
                    return false;
                }
            });
            holder.poster.setOnClickListener(new OnClickListener() {
                
                @Override
                public void onClick(View v) {
                    //gallery的中的imageview的Click事件
                    Message msg = new Message();
                    msg.arg1 = argPos;
                    msg.what = Activity_Home.GALLERY_ITEM_CLICK;
                    mHandler.sendMessage(msg);
                }
            });

     到新公司的第一个任务就是改近30个BUG,不知道未来是什么样子~~~~

  • 相关阅读:
    神墓
    【转】卷积神经网络
    【转】Deep Learning(深度学习)学习笔记整理系列之(八)
    【转】Deep Learning(深度学习)学习笔记整理系列之(七)
    【转】Deep Learning(深度学习)学习笔记整理系列之(六)
    【转】Deep Learning(深度学习)学习笔记整理系列之(五)
    【转】Deep Learning(深度学习)学习笔记整理系列之(四)
    【转】Deep Learning(深度学习)学习笔记整理系列之(三)
    【转】Deep Learning(深度学习)学习笔记整理系列之(二)
    mariadb connector bug
  • 原文地址:https://www.cnblogs.com/fanglove/p/2757439.html
Copyright © 2011-2022 走看看