Я использую фрагмент, который расширяет ListFragment, а затем использует ArrayAdapter для создания динамического списка пользовательских строк (все это работает отлично).
Что я сейчас пытаюсь сделать, так это реализовать событие onTouch, когда пользователь проводит пальцем по каждой строке слева направо, а затем что-то делает. Вся эта логика работает, единственная проблема заключается в том, что мне нужно выполнить событие onTouch, поскольку ACTION_UP, похоже, не вызывается в первый раз.
@Override
public void onListItemClick(ListView l, View v, final int position, long id) {
super.onListItemClick(l, v, position, id);
v.setOnTouchListener(new View.OnTouchListener() {
int initialX = 0;
final float slop = ViewConfiguration.get(getActivity()).getScaledTouchSlop() * 1.5f;
@Override
public boolean onTouch(final View v, MotionEvent event) {
switch(event.getActionMasked()) {
case MotionEvent.ACTION_DOWN:
initialX = (int) event.getX();
return true;
case MotionEvent.ACTION_UP:
// Do something here
return false;
}
return false;
}
});
}
Я возвращаю true из ACTION_DOWN, поэтому, насколько я понимаю, это должно указывать на событие onTouch, чтобы продолжить обработку событий касания, и в моем приведенном выше коде это будет ACTION_UP, когда пользователь убирает палец с экрана, не уверен, что мне здесь не хватает .
В дополнение к этому, если это вообще возможно, я также хотел бы привязать событие onClick к тому же представлению (не обязательно, так как уже есть обходной путь, если я могу работать выше).