CardView not shown in RecyclerView

前端 未结 3 524
面向向阳花
面向向阳花 2021-01-25 14:18

I have a problem which is driving me nuts. Basically it is a simple RecyclerView which displays a cardview. There are a lot of posts out there already, which I checked. I have a

相关标签:
3条回答
  • 2021-01-25 15:03

    Just try after adding this line inside your recyclerview:

    app:layout_behavior="@string/appbar_scrolling_view_behavior"
    

    like this:

    <android.support.v7.widget.RecyclerView
        android:id="@+id/rv"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:layout_behavior="@string/appbar_scrolling_view_behavior">
    </android.support.v7.widget.RecyclerView>
    

    Hope it will help you.

    0 讨论(0)
  • 2021-01-25 15:04

    You are using RecyclerView with vertical orientation (in Java code)

    In the Activity XML you are setting the layout height to Wrap_Content

    The card layout also has an height of match_parent

    They will not work like that, I lost three days on this

    Try to give fix height to your card layout, test also other alteration of other layout, it will work for you

    Good luck

    0 讨论(0)
  • 2021-01-25 15:12

    Your code is fine, The problem is with layout file: document_item.xml:

        <LinearLayout
            android:layout_width="match_parent"  
            android:layout_height="wrap_content"
            android:orientation="horizontal">
    
            <ImageView
                android:id="@+id/_photo"
                android:layout_width="wrap_content"  -->mistake
                android:layout_height="wrap_content"
                android:layout_weight="0.25" />
    
            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="match_parent" -->mistake
                android:gravity="center_horizontal"
                android:orientation="vertical"
                ...
    

    The second LinearLayout gets its height from parent (first LinearLayout), and the first one gets its height from its only child: ImageView (so without no drawable set, the second layout's height will be zero! ), if you set a drawable for ImageView (in onBindViewHolder method or in layout xml file) it probably crops some of TextView items, Also when you set android:layout_width to "wrap_content", actually you're ignoring layout_weight.

    So edit layout file like this:

              ...
              <ImageView
                android:id="@+id/_photo"
                android:layout_width="0dp"
                android:layout_gravity="center_vertical"
                android:layout_height="wrap_content"
                android:layout_weight="0.25" />
    
            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                ...
    
    0 讨论(0)
提交回复
热议问题