带有onTouch和onItemLongClick监听器的Android listview
你好,我还在开发Android应用程序。早些时候,我使用OnTouch listener创建了一个listview,它可以滑动、双击和长时间单击来执行拖放操作。这是一个简单的文本视图 现在我改为一个自定义的listview行,带有一个textview和一个按钮。在这种配置下,两种手势检测中只有一种可用。当我将android:longclickable设置为true时,可以进行拖放操作,但不会检测到OnTouch。反过来也是如此。有没有人能同时使用两种手势检测的解决方案带有onTouch和onItemLongClick监听器的Android listview,android,android-layout,listview,ontouchlistener,onitemlongclicklistener,Android,Android Layout,Listview,Ontouchlistener,Onitemlongclicklistener,你好,我还在开发Android应用程序。早些时候,我使用OnTouch listener创建了一个listview,它可以滑动、双击和长时间单击来执行拖放操作。这是一个简单的文本视图 现在我改为一个自定义的listview行,带有一个textview和一个按钮。在这种配置下,两种手势检测中只有一种可用。当我将android:longclickable设置为true时,可以进行拖放操作,但不会检测到OnTouch。反过来也是如此。有没有人能同时使用两种手势检测的解决方案 <?xml vers
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content" >
<TextView
android:id="@+id/rowTextView"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:padding="10dp"
android:textSize="16sp" >
</TextView>
<ImageButton
android:id="@+id/rowImgButton"
android:layout_width="40dp"
android:layout_height="40dp"
android:background="#ffff00"
android:focusable="false"
android:focusableInTouchMode="false"
android:layout_alignRight="@+id/rowTextView" />
</RelativeLayout>
这可能适用于,您可以创建一个手势检测器:
myGestureDetector = new GestureDetector(mContext, new GestureDetector.SimpleOnGestureListener() {
@Override
public void onLongPress(MotionEvent e) {
//Handle long press
}
});
myGestureDetector.setIsLongpressEnabled(true);
然后在onTouch方法中:
public boolean onTouch (View v, MotionEvent event) {
myGestureDetector.onTouchEvent(e);
...
}
然后,当用户执行长按时,onLongPress方法应启动您可以使用onTouchListener中的手势检测器来检测longPresses@I-我尝试使用onLongPress,但这个手势应该会启动拖放操作。这在onLongPress是不可能的。你想做什么还不是很清楚。如果你发布一些你正在做的事情的代码,可能会有所帮助。我发布了一个答案,我认为它应该可以完成你正在尝试做的事情。我的问题中解释了这两种手势的目的。我不明白你有什么不明白的?