2016-02-12 6 views
0

У меня есть RecyclerView (макет сетки), элементами которого являются TextViews. Когда пользователь нажимает на TextView, я меняю цвет фона. Я допускаю множественный выбор. Все это прекрасно. Теперь у меня появилось новое требование показать пульсацию, когда пользователь нажимает на TextView. Поэтому в основном я должен сделать две вещи:Изменение фона TextView с рябью

  1. показать пульсация изменения
  2. фон из TextView

Как это сделать? Я попытался использовать android:drawSelectorOnTop="true” в RecyclerView (xml), но это не имело значения.

Итак, представьте себе, что мне нужно изменить фон TextView между синим и зеленым. Но на вершине я должен всегда показывать пульсации для onLongClick

+0

Возможно, мне нужно добавить рябь через декоратор GridLayoutManager? как? –

+0

Возможно, это может быть ответ: почему некоторые кнопки пульсируют на longClick, а некоторые нет? Например, CheckBox пульсирует как по клику, так и по longClick. В то время как обычная кнопка не пульсирует на longClick, но рябь на коротких кликах –

ответ

1

Предполагая, что вы используете библиотеку Android Поддержка изменения android:background вашего макета элемента к ?attr/selectableItemBackground или ?attr/selectableItemBackgroundBorderless, которые будут применяться пульсации на Lollipop + устройств и возврат к полному пункту выберите на более низких устройствах.

+0

Мой элемент TextView, как указано –

+0

Так измените свойство 'android: background'' TextView' на '? Attr/selectableItemBackground' или'? Attr/selectableItemBackgroundBorderless 'и вы получите пульсацию, как указано: -D –

+0

Спасибо за помощь, но вы, вероятно, неправильно поняли вопрос. TextView имеет onLongClickListener. Когда происходит длинный клик, мне нужно переключить фон textView между зеленым и синим. Ты видишь? 'textView.setBackgroundColor (resources.getColor (R.color.colorPrimary));' является одним из вариантов. Таким образом, назначение xml будет немедленно потеряно после того, как адаптер начнет связываться. –