Использование карты поддержки CardView? №
Лично я считаю, что поддержка CardView повреждена и не должна использоваться вообще. Он выглядит и работает немного по-другому на Lollipop и на старых системах. Тень различна, отступы различны, обрезка содержимого не работает на устройствах до Lollipop и т. Д. API также странный и запутанный. Вот почему трудно получить хорошие результаты на всех платформах. Если вы можете жить без карточек, я бы пошел именно так.
Конечно, возможно создать обычную, красивую, обратную совместимую карту, но это немного сложная задача. Чтобы создать карточку самостоятельно, вам необходимо выполнить:
- округлые углы с обрезкой содержимого (не работает в поддержке CardView). Here's how to do it properly.
- тени, нарисованные вне карты (не внутри, как поддержка CardView). Это зависит от ваших потребностей. Я бы переопределил
drawChild(...)
в родительском контейнере, где я мог легко рисовать тени вокруг карт. Метод генерации тени не имеет значения - это может быть градиент, статический 9-патч или размытая черная форма RenderScript.
Я был расстроен внешним видом и API CardView, поэтому я создал свою собственную реализацию. Его можно найти на GitHub - библиотека называется Carbon, и использовать ее, вероятно, самый простой способ получить приличную карту. После импорта библиотеки просто добавьте style="?attr/carbon_cardViewStyle"
в любой макет, чтобы он выглядел как карта:
<carbon.widget.RelativeLayout
style="?attr/carbon_cardViewStyle"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>