android:如何增加 android 中 ListView 项目的长按时间?

标签 android long-press

我有一个自定义 listview,其中的项目水平滚动。我想对 listview 项目执行单点触摸和长按项目 5 秒。这该怎么做。如何将 listview 项目的 longpress 时间间隔增加到 5 秒。

最佳答案

这会更准确地复制 onLongPress,因为它不会在执行前等待用户抬起手指。专为 ViewPager 编写,但应该能够应用类似的逻辑。

// long press duration in milliseconds
public static final int LONG_PRESS_DURATION = 2000;

private boolean mIsTouching = false;

@Override
public boolean onTouchEvent(MotionEvent event) {

    if (event.getAction() == event.ACTION_DOWN) {
        mIsTouching = true;
    } else if (event.getAction() == event.ACTION_UP) {
        mIsTouching = false;
    }

    return super.onTouchEvent(event);
}

@Override
public void onLongPress(MotionEvent event) {

    // subtracts the system set timeout since that time has already occured at this point
    int duration = LONG_PRESS_DURATION - getLongPressTimeout();

    Handler handler = new Handler();
    handler.postDelayed(new Runnable() {
        @Override
        public void run() {
            if (mIsTouching) {
                do something...
            }
        }
    }, duration > 0 ? duration : 0);
}

关于android:如何增加 android 中 ListView 项目的长按时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41327179/

相关文章:

android - 如何禁用 EditText Android 中的退格行为?

java - 从数据库中选取数据时的动态 ListView 或 TextView

android - 在 Android 中获取 Google map 时出错

java - 控制 Sprite 旋转(它疯狂地旋转)

java - 在 Intent 中传递 ArrayList<int[]>[] 的正确方法是什么?

ios - 如何让 stepper 和 longpress 共存?

ios - Swift: Long Press Gesture Recognizer - 检测点击和长按

iphone - uiimageview的长按手势和移动?

Android 服务将一个 Activity 的多个实例放入历史记录中

ios - 从 WebView 的文本字段中禁用复制和粘贴菜单。我的应用程序基于 IOS Phonegap。