Я использую макет таблицы для отображения данных, но я хочу, чтобы он вел себя как элементы списка
(возможность выбора, при выборе изменить фон, при нажатии, с эффектом наведения, возможность нажатия) для этой цели я использую следующих слушателей
OnClickListener(to perform action)
OnFocusChangeListener(To change background color)
OnTouchListener(to focus specific row)
Теперь проблема в том, что когда пользователь касается какого-либо элемента, он сначала получает фокус, а затем снова должен коснуться, чтобы вызвать событие onclick, чтобы исправить это, я внес изменение и включил действие, связанное с определенным рядом строки.
@Override
public boolean onTouch(View v, MotionEvent event) {
if (event.getAction() != MotionEvent.ACTION_UP){
v.requestFocus();
int viewId= v.getId();
handleEvent(viewId);//Switch cases to perform row specific actions.
}
return false;
}
теперь, если пользователь трогает событие строки, оно срабатывает, что работает отлично, но возникает еще одна проблема, когда даже пользователь хочет прокрутить данные вниз, перетаскивая палец на экран. ontouch
событие запускается .... и действие автоматически выполняется, хотя пользователь думает, что это будет scroll down
экран.