Я пытаюсь заставить CardView отображать волновой эффект при касании, установив атрибут android: backgound в XML-файле активности, как описано здесь на странице разработчиков Android, но он не работает. Нет анимации вообще, но вызывается метод в onClick. Я также попытался создать файл ripple.xml, как предложено здесь , но тот же результат.
CardView в том виде, в каком он отображается в XML-файле упражнения:
<android.support.v7.widget.CardView
xmlns:card_view="http://schemas.android.com/apk/res-auto"
android:layout_width="155dp"
android:layout_height="230dp"
android:elevation="4dp"
android:translationZ="5dp"
android:clickable="true"
android:focusable="true"
android:focusableInTouchMode="true"
android:onClick="showNotices"
android:background="?android:attr/selectableItemBackground"
android:id="@+id/notices_card"
card_view:cardCornerRadius="2dp">
</android.support.v7.widget.CardView>
Я относительно новичок в разработке Android, поэтому я мог сделать несколько очевидных ошибок.
android
android-layout
android-5.0-lollipop
android-cardview
AkraticCritic
источник
источник
?android:attr/selectableItemBackground
требует API уровня 11android:clickable="true"
.Добавьте эти два строковых кода в ваше представление XML, чтобы придать эффект ряби вашему cardView.
источник
foreground
работает с пользовательскими видами фона, как шарм! Ницца!Мне удалось получить эффект пульсации на карточке:
и для custom_bg, который вы видите в приведенном выше коде, вы должны определить xml-файл для устройств lollipop (в пакете drawable-v21) и pre-lollipop (в пакете drawable). для custom_bg в пакете drawable-v21 код выглядит так:
для custom_bg в отрисовываемом пакете код:
так что на устройствах перед леденцом на палочке у вас будет сильный эффект щелчка, а на устройствах с леденцом на палочке у вас будет эффект пульсации на просмотре карты.
источник
Эффект пульсации был опущен в библиотеке поддержки appcompat, которую вы используете. Если вы хотите увидеть пульсацию, используйте версию Android L и протестируйте ее на устройстве Android L. По сайту AppCompat v7:
«Почему на пред-Lollipop нет пульсаций? Многое из того, что позволяет RippleDrawable работать без сбоев, - это новый Android 5.0 RenderThread. Для оптимизации производительности на предыдущих версиях Android мы пока оставили RippleDrawable».
Проверьте эту ссылку здесь для получения дополнительной информации
источник
Если приложение, с
minSdkVersion
которым вы работаете, уровня 9, вы можете использовать:Вместо этого, начиная с 11 уровня, вы используете:
Из документации:
источник
Для меня добавление
foreground
кCardView
не работает (причина неизвестна: /)Добавление того же к своему дочернему макету сделало свое дело.
КОД:
источник
Добавьте эти два типа кода, работающего как очарование для любого представления, такого как Button, Linear Layout или CardView. Просто поместите эти две строки и увидите магию ...
источник
Если есть корневой макет, такой как RelativeLayout или LinearLayout, который содержит все компоненты элемента адаптера в CardView, необходимо установить атрибут фона в этом корневом макете. лайк:
источник
Пульсация события для
Cardview
управления Android :источник
Я не был доволен AppCompat, поэтому я написал свой собственный CardView и порожденную волнами. Здесь он работает на Galaxy S с Gingerbread, так что это определенно возможно.
Для более подробной информации проверьте исходный код .
источник
Добавьте следующее в ваш xml:
И добавить в свой адаптер (если это ваш случай)
источник
Для тех, кто ищет решение вопроса о том, что эффект ряби не работает с программно созданным CardView (или, в моем случае, с настраиваемым представлением, расширяющим CardView), отображаемым в RecyclerView, мне помогло следующее. По сути, объявление атрибутов XML, упомянутых в других ответах, декларативно в файле макета XML, похоже, не работает для программно созданного CardView или для созданного из пользовательского макета (даже если корневым представлением является CardView или используется элемент слияния), поэтому они должны быть установлены программно следующим образом:
Где
MadeupCardView extends CardView
слава этому ответ заTypedArray
часть.источник
Только работает API 21 и использовать это не использовать этот список строк просмотра карты
источник
Вместо этого используйте Material Cardview, он расширяет Cardview и предоставляет несколько новых функций, включая кликабельный эффект по умолчанию:
Зависимость (может использоваться до API 14 для поддержки старых устройств):
источник