我有一个自定义 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/