Я попытался реализовать волновой эффект в моем RecyclerView. Вот мой макет для него:
<android.support.v7.widget.CardView
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:card_view="http://schemas.android.com/apk/res-auto"
android:id="@+id/card"
android:layout_marginTop="7dp"
android:layout_marginLeft="16dp"
android:layout_marginRight="16dp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
card_view:cardCornerRadius="5dp"
android:clickable="true"
card_view:cardElevation="5dp"
android:focusable="true"
android:foreground="?android:attr/selectableItemBackground">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
android:padding="16dp">
<TextView
//some properties />
<TextView
//some properties />
<TextView
//some properties />
</LinearLayout>
</android.support.v7.widget.CardView>
Чтобы реализовать прослушиватель onclick, я в основном следовал этому руководству здесь: http://sapandiwakar.in/recycler-view-item-click-handler/
Проблема в том, что волновой эффект, генерируемый благодаря линиям:
android:clickable="true"
android:focusable="true"
android:foreground="?android:attr/selectableItemBackground"
не работает на лёгких (то бишь быстрых) нажатиях. Когда я просто быстро нажимаю на экран, срабатывает прослушиватель кликов. Это означает, что событие касания было обнаружено, однако волновой эффект не проявляется. Если я хочу увидеть волновой эффект, мне нужно немного дольше удерживать давление на экране, прежде чем отпустить.
Есть ли способ исправить это поведение и показать волновой эффект даже для быстрых нажатий?
selectableItemBackground
, поэтому он показывает пульсацию только для более длинных нажатий. - person Gergely Kőrössy   schedule 12.07.2017