Я создал свой составной виджет, примерно такой:
<LinearLayout>
<TextView />
<Button />
</LinearLayout>
Я помещаю 15 из них в ScrollView. Я хочу, чтобы он вел себя подобно ListView (я не могу использовать ListView напрямую для этой задачи).
Мне нужно, чтобы каждый виджет выделялся при нажатии. Я заставил это работать, но он слишком чувствителен - как только мой палец коснется макета, он подсвечивается - я бы хотел, чтобы была задержка перед выделением, чтобы различить реальное нажатие и просто жест прокрутки. 1006 *
Например, в ListView, когда вы перетаскиваете палец для прокрутки, элементы строки не подсвечиваются, пока вы не оставите палец на строке на секунду.
Вот как я установил фон каждого из моих составных элементов:
private void setBg() {
ColorDrawable blr = new ColorDrawable(0xFFFFFFFF);
Drawable pressed = getContext().getResources().getDrawable(android.R.drawable.list_selector_background);
StateListDrawable bg = new StateListDrawable();
bg.addState(View.PRESSED_ENABLED_STATE_SET, pressed);
bg.addState(View.FOCUSED_SELECTED_WINDOW_FOCUSED_STATE_SET, pressed);
bg.addState(View.PRESSED_ENABLED_FOCUSED_STATE_SET, pressed);
bg.addState(View.ENABLED_WINDOW_FOCUSED_STATE_SET, pressed);
bg.addState(View.ENABLED_STATE_SET, blr);
bg.addState(View.SELECTED_WINDOW_FOCUSED_STATE_SET, blr);
setBackgroundDrawable(bg);
}
, поэтому я не уверен, что я просто неправильно установил одно из указанных выше состояний рисования фона - или ListView выполняет какую-то обработку касания внутри для этой задержки касания?
Спасибо