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,不知道未来是什么样子~~~~

  • 相关阅读:
    < java.util >-- Set接口
    Codeforces 627 A. XOR Equation (数学)
    Codeforces 161 B. Discounts (贪心)
    Codeforces 161 D. Distance in Tree (树dp)
    HDU 5534 Partial Tree (完全背包变形)
    HDU 5927 Auxiliary Set (dfs)
    Codeforces 27E. Number With The Given Amount Of Divisors (暴力)
    lght oj 1257
    Codeforces 219D. Choosing Capital for Treeland (树dp)
    Codeforces 479E. Riding in a Lift (dp + 前缀和优化)
  • 原文地址:https://www.cnblogs.com/fanglove/p/2757439.html
Copyright © 2011-2022 走看看