int lastX, curX;
private int totalMove = 0;
private boolean firstDown = true;//开关
int duration = 150;
OnTouchListener listViewOnTouchListener = new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN: {
lastX = (int)event.getX();
totalMove = 0;
firstDown = false;
return false;
}
case MotionEvent.ACTION_MOVE:{
if (firstDown) {
curX = (int) event.getX();
totalMove = 0;
firstDown = false;
}
curX = (int) event.getX();
int delatX = curX - lastX;
//if (delatX > 0) {
totalMove += delatX;
lastX = curX;
//}
return false;
}
case MotionEvent.ACTION_UP:{
boolean result = false;
if(totalMove > 20 ){
//
Log.e("right","right");
totalMove = 0;
//things you shouold do here
result = true;
}
if(totalMove < 0 && Math.abs(totalMove) > 20){
Log.e("left","left");
totalMove = 0;
//things you shouold do here
result= true;
}
return result;
}
}
return false;
}
};
listView.setOnTouchListener(listViewOnTouchListener );
其他的onclickListener onLongClickListener 好普通 无需介绍
关键在于onTouchListener中 onDown的时候 返回false onCLICK 与longclick也会感应到这个动作,true就相反。。。然后在onMove的时候去统计移动的距离,设定一个滑动的敏感度,达到这个值就返回false 处理相应的操作,例如划屏更新UI。。。不过这个值就返回true让onclick的事件响应,同时设定一个duration时延给longclick事件 达到某个值的话 也直接返回true。。
没有直接的api方法让他们共存,在于我们如何使用而已。
分享到:
相关推荐
里要分享的是在一个listview中添加两个点击事件的解决办法,...这样的好处就是既不去掉ListView的OnItemClick事件,而且又添加了一个新的事件。详细文章见 http://blog.csdn.net/huihuangui/article/details/6768629
本篇文章将深入探讨ListView的事件处理,特别是如何处理ListView与Button共存时焦点问题,以及在Adapter中实现接口来响应按钮点击,改变ListView中的数据。 首先,我们来解决“listview与button共存抢夺焦点问题”...
而Button作为ListView的一个子视图,其点击事件会被ListView的触摸事件处理机制所覆盖。因此,当用户点击Button时,ListView可能会误认为是滚动操作,从而导致Button的点击事件无法正常执行。 解决这个问题通常有...
2. **自定义ListView Item布局**:在XML中设计一个ListView的Item布局,包含一个Button。例如,创建一个名为`list_item.xml`的布局文件: ```xml android:id="@+id/textView" android:layout_width="wrap_...
在Android开发中,ListView是一个非常重要的组件...通过查看和运行这个示例,你可以更直观地理解ListView的刷新、滚动监听和选项事件的处理。这样的实践将有助于你在实际开发中更好地运用ListView这一功能强大的组件。
需求如题目:Android listview中item部分区域添加点击事件,在一个界面显示了listview,但显示的内容分为上下两部分,分别是白色的背景和蓝色的背景,现在需要只点击蓝色的背景,才能跳转到其他界面,解决方式如下:...
在ListView的滑动结束时,记得调用`requestDisallowInterceptTouchEvent(false)`,恢复父View的事件处理。 以上策略可以根据实际需求灵活选择。在提供的MyListView文件中,可能就包含了自定义ListView解决滑动冲突...
事件处理是ListView功能的一个关键部分,它使得用户可以与列表项进行交互。在这个主题中,我们将深入探讨"事件处理ListView"的相关知识点。 首先,`ListView`是Android SDK中的一个视图组件,它允许用户在一个垂直...
首先,我们要创建一个自定义的Adapter,这个Adapter是ListView与数据源之间的桥梁,负责将数据转化为ListView可显示的View。在适配器中,我们需要重写`getView`方法,在这里可以添加事件监听器。 1. 单击事件: ...
标题"listView上增加button点击事件"所涉及的核心知识点是如何在ListView的item中嵌入Button,并同时处理这两个元素的独立点击事件,避免事件冲突。 首先,我们需要理解ListView的工作原理。ListView通过Adapter来...
本文用两种方法BaseAdapter 和SimpleAdapter分别实现三种情况。listview中有button事件的时候,针对不同的需求,响应不同的事件。只实现响应listview的点击事件。只响应listview中的button事件。两个事件都需要。
在Java代码中,可以为父`ListView`设置`setFocusable(false)`,以确保它不会获取焦点,进而使得触摸事件能够被正确地处理。这通常配合上面提到的XML属性一起使用。 #### 示例代码详解 下面是对示例代码的具体解释...
在这个主题中,我们将深入探讨如何通过Intent和Bundle实现Activity间的参数传递和跳转,以及如何在ListView中设置Item的点击事件处理。 首先,Intent是Android系统中用于启动其他组件(如Activity、Service等)的...
1. **定义接口**:创建一个接口,例如`OnItemClickListener`,包含一个处理点击事件的方法,如`onItemClick()`。 2. **实现接口**:在父组件中实现这个接口,并在`onItemClick()`方法中编写点击事件的逻辑。 3. **...
理解和熟练掌握ListView的适配器以及item事件处理,对于提升Android应用的用户体验至关重要。在实际项目中,还可以结合ViewHolder模式优化性能,避免因为频繁的findViewById操作导致的性能问题。同时,适配器的灵活...
总之,解决ListView item点击事件冲突问题需要对Android的事件传递机制有深入理解,并灵活运用各种策略来处理。合理地配置子View的可点击性和焦点性,以及正确处理手势和点击事件的冲突,都是解决问题的关键。同时,...
通常,ListView的单击事件很容易处理,但当一个Item内部需要响应多个独立的交互时,就需要更精细的事件分发。以下将详细介绍如何实现这个功能。 首先,我们来理解ListView的基本结构。ListView通常由Adapter驱动,...
这个过程可能需要对Android的触摸事件处理和滚动机制有深入理解,但通过实践,开发者可以更好地控制和优化界面的滚动行为。在实际项目中,可以参考已有的开源库,如`androidx.core.widget.NestedScrollView`和`...
本篇文章将深入探讨如何在Android中实现ListView的显示以及单击事件处理。首先,我们了解ListView的基本概念。 ListView是一个可滚动的视图,它能显示一个长列表,其中每个项目都由一个单独的View表示。ListView...
本文将深入探讨如何实现自定义的圆角ListView项以及处理选中背景。 首先,我们需要了解ListView的工作原理。ListView通过Adapter来填充数据,并通过ViewHolder优化性能。Adapter负责将数据转化为View,然后ListView...