当前位置:编程学习 > JAVA >>

ListView中使用GestureDetector冲突的解决办法

在做OnGestureListener手势滑动界面的时候,会遇到这样的问题,就是当界面中含有ListView的时候,OnGestureListener的界面滑动就被ListView拦截并消费掉了。
为了解决这个问题需要重写ListView的OnTouchListener接口:
Java代码:
 
ListView listView=(ListView)findViewById(R.id.listViewBeside); 
        listView.setOnTouchListener(new View.OnTouchListener(){ 
            @Override  www.zzzyk.com
            public boolean onTouch(View v, MotionEvent event) { 
                // TODO Auto-generated method stub 
                leftPanel.getGestureDetector().onTouchEvent(event);//需要这样写! 
                return false; 
            }  
        }); 
        listView.setOnItemClickListener(new ListView.OnItemClickListener() { 
            @Override 
            public void onItemClick(AdapterView<?> parent, View view, 
                    int position, long id) { 
                // TODO Auto-generated method stub 
                Log.i("tag", "position=="+position); 
            } 
        }); 
 
因为我的手势是定义在leftPanel这个View中的,所以是leftPanel.getGestureDetector().onTouchEvent(event);。如果你的手势是写在Activity中的,那么就是mGestureDetector.onTouchEvent(event);
这样既能保证在ListView上实现拖动,又能保证ListView上的Item Click.
补充:软件开发 , Java ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,