Birk
Birk

Reputation: 126

Views not wrapping content inside Card View

Some Views are not wrapping it's content when used inside a CardView in Android L. When testing the same code on earlier versions of Android everything works fine. Here is my layout:

<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 Preview

This is the same layout running on a Samsung Galaxy S5 with Android L:

Samsung Galaxy S5 with Android L

If I try to set a fixed height for both TextView (25dp and 18dp respectively) the parent LinearLayout does not wrap it's content the same way as the TextView.

[Fixed height for TextView][3]

I'm missing something? Don't know what is wrong, because this only happens in Android L.

EDIT: I'm still looking for solutions for this problem.

Upvotes: 10

Views: 5109

Answers (4)

Ibrahim Shara&#39;h
Ibrahim Shara&#39;h

Reputation: 1

if you have TextView inside try to make
android:layout_width="match_parent"

that's work for me.

Upvotes: 0

Zied Nasri
Zied Nasri

Reputation: 1

Sometimes the background/src images are the cause of this problem, try using smaller images and convert them to 9P ones.

Upvotes: 0

prats110892
prats110892

Reputation: 6749

Making the text views widths to wrap_content instead of match_parent might work. Also you can remove the "+" from @+id/logo in the toEndOf and toRightOf attribute.

Upvotes: 3

Ajeet
Ajeet

Reputation: 1560

Try removing android:layout_toEndOf="@+id/logo" from LinearLayout as it positions the start edge of this view to the end of the logo ImageView.

Upvotes: 0

Related Questions