首页 > 其他分享 >关于ListView中使用GestureDetector冲突的解决办法

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

时间:2023-04-06 21:41:02浏览次数:46  
标签:解决办法 listView GestureDetector onTouchEvent leftPanel ListView event View


在做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.


标签:解决办法,listView,GestureDetector,onTouchEvent,leftPanel,ListView,event,View
From: https://blog.51cto.com/u_5454003/6174151

相关文章

  • 上拉下拉刷新,支持ListView,GridView,ScrollView
    开源项目PullToRefresh详解(一)——PullToRefreshListView类似Lollipop滚动溢出效果的下拉刷新布局:JellyRefreshLayouthttp://www.open-open.com/lib/view/open1437223823115.html网上很多这样的效果都是继承某个具体的AdapterView或ScrollView,这样很不通......
  • Listview中显示不同的视图布局
    1.使用场景在重写ListView的BaseAdapter时,我们常常在getView()方法中复用convertView,以提高性能。convertView在Item为单一的同种类型布局时,能够回收并重用,但是多个Item布局类型不同时,convertView的回收和重用会出现问题。比如有些行为纯文本,有些行则是......
  • 横向滑动的ListView
    我通常把GridView设置成1行来代替横向的listview了,呵呵。下面这个类留着以后试试。publicclassHorizontalListViewextendsAdapterView<ListAdapter>{publicbooleanmAlwaysOverrideTouch=true;protectedListAdaptermAdapter;privateint......
  • 运用手势操作ListView中的Item
    如下面这个图:需要实现的功能是:用手指在某条记录上从左往右划一下,出现一条横线,用于表示这个菜已经上过了;倒过来划,取消这条横线,表示这个菜没上过。如何实现呢?看我的吧!首先需要一个Item的布局,在布局的最上方有一个ImageView用于显示这条横线,如果没有就把这个I......
  • 分别设置listview加载中、空数据、加载数据失败三种状态的显示
    设置listview加载中,空数据,加载数据失败三种状态的显示.基本用法:importjava.util.ArrayList;importjava.util.Arrays;importcom.kanak.emptylayout.EmptyLayout;importandroid.os.Bundle;importandroid.view.View;importandroid.view.View.OnCl......
  • 在ListView上滑动显示Delete按钮
    SwipeLayout实现listview滑动删除功能http://www.devstore.cn/code/info/579.html首先设置listView.setOnTouchListener(onTouchListener);listView=(ListView)findViewById(R.id.listView);listView.setOnItemClickListener(onItemClickListener);li......
  • Visual Studio 2022 不支持 .NET Framework 4.5 项目的解决办法
    概述升级到VisualStudio 2022后,打开速度快了很多,开发体验也舒服很多。只是使用过程中遇到了一个比较尴尬的问题:默认VisualStudio2022不再支持安装.NETFramework4.5组件,如下图所示:选择组件里面已经不能选择4.5/4.0的框架了。此时如果打开基于.NETFramework4.5......
  • ListView之setEmptyView的问题
    使用listView或者gridView时,当列表为空时,有时需要显示一个特殊的emptyview来提示用户,一般情况下,如果你是继承ListActivity,只要<ListViewandroid:id="@id/android:list".../><TextViewandroid:id="@id/android:empty.../>当列表为空时就会自动显示Tex......
  • 关于Qt在线安装报错的一些问题解决办法
    事情的起因是,换了一台新电脑,准备安装Qt,突发现安装不了,报错,一共有几种:1.   2.第二种是不能到选择安装的界面   3.第三种是可以选择了,也可以下载安装了,但是卡在一个地方不动了以上3种个人猜测可能是某些网络原因,至于是什么网络原因,大家自行脑补。不多说废话,经过我......
  • MYSQL ERROR1045 报错的解决办法
    问题原因是密码错误导致的但是我输入的密码是安装MYSQL的时候设定的密码,应该是正确的。其实并不是,因为mysql会随机生成一个乱码作为你的密码。你需要改掉(或者记下)这个密码。解决方法:1.在my.ini中输入以下内容3.保存之后在命令行输入netstartmysql启动服务4.免密码登陆my......