`

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

阅读更多
在做OnGestureListener手势滑动界面的时候,会遇到这样的问题,就是当界面中含有ListView的时候,OnGestureListener的界面滑动就被ListView拦截并消费掉了。
为了解决这个问题需要重写ListView的OnTouchListener接口:
ListView listView=(ListView)findViewById(R.id.listViewBeside);
  		
  		listView.setOnTouchListener(new View.OnTouchListener(){

			@Override
			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.
分享到:
评论

相关推荐

    SlidingMenu和Listview冲突解决方案

    3. **使用GestureDetector**:在ListView中添加GestureDetector,监听用户的滑动行为。当检测到向下滑动的手势时,阻止事件传递到SlidingMenu。这样可以确保只有在用户意图操作菜单时,SlidingMenu才会响应。 4. **...

    listview item点击事件冲突问题

    在ListView中使用PhotoView作为item,需要注意手势操作可能与点击事件冲突。为了避免这种冲突,你可以: 1. 自定义PhotoView,覆写`onTouchEvent`方法,通过判断手势类型来区分点击和手势操作。 2. 使用...

    ListViewPager_完美解决ListView和ViewPager的滑动冲突

    "ListViewPager"这个解决方案可能是通过一种或多种方式来实现滑动冲突的完美解决,以确保用户在使用应用时能享受到流畅的滑动体验。通过深入理解这些机制,开发者可以更好地应对类似的问题,提高应用的用户体验。

    ListView和Button点击事件冲突处理

    4. **使用GestureDetector**:另一种可能的解决方案是使用GestureDetector,它可以识别出轻触(tap)和滑动(swipe)事件。通过自定义GestureDetector的onDown()和onSingleTapUp()方法,可以实现对Button的独立点击...

    仿qq侧滑+解决与listview滑动冲突

    在Android应用开发中,"仿qq侧滑+解决与listview滑动冲突"是一个常见的需求,尤其是对于那些希望实现类似QQ应用那样具有侧滑菜单功能的开发者来说。这个主题涉及了两个主要技术点:侧滑菜单的实现和ListView滑动冲突...

    Android滑动冲突解决的例子

    解决滑动冲突是Android UI开发中的一个重要技能,它需要开发者对触摸事件的生命周期有深入理解,并能够灵活运用各种手段来协调不同视图间的滑动行为。通过学习和实践,开发者可以创建出更加流畅、自然的用户体验。

    android 滑动删除的listview(自定义view)

    在Android中,我们可以使用GestureDetector和Scroller类来处理滑动手势和动画效果。GestureDetector用于检测用户的滑动操作,而Scroller则帮助我们平滑地移动View。 1. **自定义View的基本步骤**: - 创建一个新的...

    Listview的左右滑动实现

    2. 在ListView的onTouchEvent()方法中传递事件给GestureDetector: ```java @Override public boolean onTouchEvent(MotionEvent event) { return gestureDetector.onTouchEvent(event); } ``` 3. 在onFling()方法...

    滑动删除Listview中的数据

    在Android开发中,ListView是一种常用的组件,用于展示大量的列表数据。滑动删除功能是现代用户界面设计中的一个常见特性,它能提供更加直观和便捷的交互体验。标题"滑动删除Listview中的数据"和描述中提到的问题,...

    listview 分页,tablehost 实现,滑动手势

    在ListView中,我们可以使用`PagerAdapter`或`FragmentStatePagerAdapter`(如果涉及到页面状态的保存)配合`ViewPager`来实现分页。每个页面代表ListView的一部分数据。当用户滚动到页面末尾时,通过监听器`...

    listview实现左右滑动删除

    在Android中,我们可以使用GestureDetector或者SwipeRefreshLayout等组件来捕捉滑动事件。但在这里,我们更倾向于使用SwipeableItemUtils库,这是一个专门为ListView和RecyclerView设计的滑动删除工具库。 1. **...

    Android ListView 仿微信侧滑删除

    为了保持用户体验的连贯性,我们可以在后台线程中执行删除操作,然后使用Handler或者runOnUiThread在主线程中更新ListView,确保界面不会卡顿。 最后,为了提供良好的用户体验,还需要处理一些细节,比如滑动取消...

    listview左右滑动动画实现

    在项目中创建一个新的Activity或者Fragment,引入自定义的Adapter和GestureDetector,并在布局文件中设置好ListView。在Adapter的`getView()`方法中,实例化GestureDetector,并在item的点击事件中调用`...

    ListView左右滑动效果

    在Android开发中,ListView是常用的一种控件,用于展示大量数据列表。本篇文章将深入探讨如何实现ListView的左右滑动效果,类似于三星i9100通话记录中的交互设计。这个效果可以为用户带来更直观的操作体验,提高应用...

    Android 点击listview弹出popupwindow弹出框

    在`ListView`的适配器中,我们需要为每一项添加一个触摸监听器,通过滑动手势检测器(如`GestureDetector`)来判断用户的滑动行为。当检测到向左的滑动时,可以改变相应条目的视觉效果,显示删除按钮或提示。同时,...

    ListView滑动删除 ,仿腾讯QQ 源码程序

    此外,滑动删除功能通常会与ListView的分页加载、下拉刷新等其他功能结合使用,因此在实际开发中需要考虑这些组件之间的协同工作,避免冲突和异常。 总之,实现ListView滑动删除功能涉及到手势检测、动画处理、...

    ListView侧滑删除item

    在实际开发中,你可能还会遇到一些问题,如滑动冲突、手势识别准确性等,这些问题都需要通过不断调试和优化来解决。在提供的"SlideView"文件中,可能包含了一个实现侧滑删除的示例代码,你可以参考其中的实现方式来...

    网易新闻的listview

    在Android开发中,"网易新闻的listview"是一种常见的应用场景,它涉及到用户界面设计和数据展示。本项目名为"ViewPagerListViewDemo",显然是一个结合了ViewPager和ListView的示例,目的是模仿网易新闻客户端的交互...

    ListView侧滑删除的实现,SlideDeleteProject

    在Android开发中,ListView是常用的数据展示控件,它可以有效地展示大量数据并提供滚动操作。在许多应用中,为了提高用户体验,我们常常需要为ListView添加一些交互性更强的功能,比如侧滑删除。本项目...

    Listview侧滑删除(popwindow)

    在Android开发中,ListView是一种常用的组件,用于展示可滚动的多行数据列表。"Listview侧滑删除(popwindow)"是一个常见的交互设计,允许用户通过在列表项上进行侧滑操作来触发一个弹出窗口(PopWindow),从而实现...

Global site tag (gtag.js) - Google Analytics