Intereting Posts
Как использовать Roboto в XML-макете Есть ли эквивалент Android GCM для службы обратной связи iOS Push Notification? Функции рисования холста не работают после блокировки экрана и разблокировки Android Studio: как быстро перемещать стиль из layout.xml в style.xml? ActionBar не работает при расширении ListActivity Стеки останавливаются перед тем, как перейти к моему коду (на Android с помощью NDK) Горизонтальный центр TextView в RelativeLayout Android Studio: как удалить / фильтровать варианты сборки для отладки и выпуска buildTypes по умолчанию и сохранить только те, которые используют пользовательские типы buildTypes? Расстояние фокусировки камеры Ошибка: выполнение не выполнено для задачи ': app: transformClassesWithJarMergingForDebug' Как изменить цвет прогресса индикатора выполнения в Android Как объединить вызов программным способом, когда выполняется другой вызов (Конференц-вызов) Ошибка «AndroidManifest.xml не объявляет Java-пакет» Как передать «данные» между двумя устройствами (Android, iphone)? Запустить приложение sms с намерением

Почему между CardViews на Lollipop нет места?

Я пытаюсь использовать CardView и он работает намного ниже 5.0, но выглядит странно на Lollipop.

Введите описание изображения здесь

Введите описание изображения здесь

 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin"> <android.support.v7.widget.CardView android:layout_width="match_parent" android:layout_height="200dp"> <TextView android:id="@+id/textView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="card1" android:textAppearance="?android:attr/textAppearanceLarge" /> </android.support.v7.widget.CardView> <android.support.v7.widget.CardView android:layout_width="match_parent" android:layout_height="200dp"> <TextView android:id="@+id/textView2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="card2" android:textAppearance="?android:attr/textAppearanceLarge" /> </android.support.v7.widget.CardView> </LinearLayout> 

Я встречаю тот же вопрос, когда я использую RecyclerView , должен ли я что-то добавить, если он работает на Lollipop?

Solutions Collecting From Web of "Почему между CardViews на Lollipop нет места?"

Установите это на CardView :

 app:cardUseCompatPadding="true" 

Из документации:

Добавьте дополнение в API v21 +, чтобы иметь те же самые измерения с предыдущими версиями.

Используйте эти два тега ниже внутри вашего карточного окна:

 app:cardPreventCornerOverlap="false" app:cardUseCompatPadding="true" 

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

До L CardView добавляет дополнение к своему контенту и рисует тени в этой области. Это количество дополнений равно maxCardElevation + (1 – cos45) * cornerRadius по бокам и maxCardElevation * 1.5 + (1 – cos45) * cornerRadius сверху и снизу.

Вы должны добавить app:cardUseCompatPadding="true" в свой Cardview . Но просто добавление, которое может дать вам ошибку. Чтобы избежать этой ошибки, вам также нужно добавить xmlns:app="http://schemas.android.com/apk/res-auto" в свой CardView .

Например,

 <android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_height="wrap_content" android:layout_width="match_parent" app:cardUseCompatPadding="true"> // Other views here </android.support.v7.widget.CardView> 

Некоторые добавили бы card_view:cardUseCompatPadding="true" и xmlns:card_view="http://schemas.android.com/apk/res-auto" вместо упомянутых выше. Оба пути правильны.

Если вы хотите узнать больше о приложении в XML (Android), пройдите этот ответ :

Хотя предыдущие ответы разрешают проблему, они не объясняют, что делает каждый атрибут. Чтобы быть более полезными, чтобы ответить искателям,

cardPreventCornerOverlap добавляет дополнение к CardView на v20 и ранее, чтобы предотвратить пересечения между содержимым карты и закругленными углами.

cardUseCompatPadding добавляет дополнение в API v21 +, чтобы иметь те же самые измерения с предыдущими версиями.