Представления, не оборачивающие содержимое внутри карточного представления

Некоторые представления не упаковывают свое содержимое при использовании внутри CardView в Android L. При тестировании того же кода в более ранних версиях Android все работает нормально. Вот мой макет:

<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:layout_width="match_parent"
android:layout_height="@dimen/stock_row_height"
card_view:cardCornerRadius="@dimen/default_elevation"
card_view:cardElevation="@dimen/default_elevation"
card_view:cardUseCompatPadding="true">

<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <ImageView
        android:id="@+id/logo"
        android:layout_width="@dimen/portals_logo_width"
        android:layout_height="match_parent"
        android:layout_centerVertical="true"
        android:layout_margin="@dimen/portals_logo_margin"
        android:adjustViewBounds="true"
        android:src="@drawable/image_placeholder" />

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerVertical="true"
        android:layout_toEndOf="@+id/logo"
        android:layout_toRightOf="@+id/logo"
        android:background="@android:color/black"
        android:orientation="vertical">

        <TextView
            android:id="@+id/title"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="@android:color/holo_green_light"
            android:text="portalAddress.com"
            android:textColor="@android:color/black"
            android:textSize="@dimen/portals_title_text_size" />

        <TextView
            android:id="@+id/description"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="@android:color/holo_blue_light"
            android:text="Sincronizado 04/12/14 às 14:25"
            android:textColor="@color/medium_gray"
            android:textSize="@dimen/portals_description_text_size" />

    </LinearLayout>

</RelativeLayout>

The problem is that the TextView "wrap_content" for height is not working. This is the preview visualisation from Android Studio:

Предварительная версия Android Studio

Это тот же макет, который работает на Samsung Galaxy S5 с Android L:

Samsung Galaxy S5 с Android L

Если я попытаюсь установить фиксированную высоту для обоих TextView (25dp и 18dp соответственно), родительский LinearLayout не переносит свое содержимое так же, как TextView.

[Фиксированная высота для TextView][3]

Я что-то упускаю? Не знаю, что не так, потому что это происходит только в Android L.

EDIT: я все еще ищу решения этой проблемы.


person Birk    schedule 03.06.2015    source источник
comment
У меня недостаточно репутации, чтобы опубликовать 3 ссылки, поэтому вот адрес последней - Фиксированная высота для TextView   -  person Birk    schedule 03.06.2015
comment
Вы нашли решение? у меня такая же проблема.   -  person Apsaliya    schedule 22.08.2016


Ответы (3)


Установка ширины текстовых представлений на wrap_content вместо match_parent может сработать. Также вы можете удалить "+" из @+id/logo в атрибуте toEndOf и toRightOf.

person prats110892    schedule 03.06.2015
comment
Уже пробовал это безуспешно. Атрибут ширины работает нормально, но высота не учитывает wrap_content. И спасибо за подсказку со знаком +. - person Birk; 03.06.2015
comment
Можете ли вы сказать мне номер версии L, установленной на вашем S5, это 20 или 21 или 22? а также какую версию библиотеки поддержки вы используете? (Я предполагаю, что API 20, так как вы упомянули Android L) - person prats110892; 04.06.2015
comment
Я использую версию поддержки 22.1.0, CompileSdkVersion 22, buildToolsVersion 22.0.1 и targetSdkVersion 22. Версия Android S5 — 5.0. - person Birk; 08.06.2015

Попробуйте удалить android:layout_toEndOf="@+id/logo" из LinearLayout, поскольку он позиционирует начальный край этого представления в конце логотипа ImageView.

person Ajeet    schedule 03.06.2015

Иногда причиной этой проблемы являются изображения background/src, попробуйте использовать изображения меньшего размера и преобразовать их в изображения 9P.

person Zied Nasri    schedule 10.09.2020