2014-10-18 10 views
1

Сегодня я обновил зависимости зависимостей в своем проекте, и я нашел некоторые проблемы с новыми CardView.Android CardView padding и minHeight

Предыдущая версия:

compile 'com.android.support:cardview-v7:[email protected]' 

Текущая версия:

compile 'com.android.support:cardview-v7:[email protected]' 

Прежде всего, это выглядит как minHeight не работает больше. Одним из решений является установка любого ViewGroup внутри карты и установка минимальной высоты, но для меня это выглядит как ошибка.

Второй вопрос для меня - paddings. С новой версией релиза библиотеки больше. Если вы кладете несколько карт рядом друг с другом, разрыв между ними - путь к большому. Я пробовал установить дополнение на 0dp, но похоже, что отступы поступают из файла 9.png. Код, вставленный ниже, ничего не меняет.

<android.support.v7.widget.CardView 
    android:padding="0dp" 
    ... 

Я также пробовал с отрицательными значениями, но и ничего. Есть ли способ решить эти два вопроса для устройств до Lollipop?

ответ

7

О отступе вещи у вас есть новая информация здесь: http://developer.android.com/reference/android/support/v7/widget/CardView.html

Перед L, CardView добавляет отступы к его содержанию и втягивает тень этой области. Эта величина заполнения равна maxCardElevation + (1 - cos45) * cornerRadius по бокам и maxCardElevation * 1,5 + (1 - cos45) * cornerRadius сверху и снизу.

Поскольку отступы используются для смещения содержимого для теней, вы не можете установить прописку на CardView. Вместо этого вы можете использовать атрибуты атрибутов контента в XML или setContentPadding (int, int, int, int) в коде, чтобы установить прокладку между краями Карты и дочерними элементами CardView.

+0

Вы правы, прокладка рассчитывается на основе высоты и углового радиуса. Похоже, мне нужно найти стороннюю карточную библиотеку, потому что я не могу добиться подходящей тени без большой прокладки вокруг карты. – tomrozb

+0

или просто используйте 'card_view: cardUseCompatPadding =" true "' – dialex