您好我还在开发Android应用程序。之前我使用OnTouch监听器创建了一个listview,用于滑动和双击以及OnItemLongClick以执行拖放操作。这是一个简单的,只包含textview 现在我改为使用textview和按钮的自定义列表视图行。使用此配置,两个手势检测中的一个是可用的。当我将android:longclickable设置为true时,拖放是可能的,但它不会检测OnTouch。这也是相反的方式。有没有人有解决方案来同时使用手势检测?
<?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>
答案 0 :(得分:1)
这可能有用,你可以创建一个GestureDetector:
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方法应该触发