简体   繁体   中英

RecyclerView is cutting off the last item when switching to landscape mode

I am using TabLayout in the MainActivity , in the second tab i have a RecyclerView inside it, i successfully bind data to RecyclerView , everything is Ok, but when i rotate screen to Landscape Mode the last item of the Recycler is getting cutt-off,

this how the problem looks like:

This is in the portrait mode :

在此处输入图片说明

and the Landscape mode :

在此处输入图片说明

And this is my XML Files :

Fragment Layout :

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    xmlns:app="http://schemas.android.com/apk/res-auto">

    <android.support.v7.widget.RecyclerView
        android:id="@+id/cities_recycler_view"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:scrollbars="none"
        android:layout_marginLeft="5dp"
        android:layout_marginRight="5dp"
        android:layout_marginStart="5dp"
        android:layout_marginEnd="5dp"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintRight_toRightOf="parent" />

</android.support.constraint.ConstraintLayout>

and finally the RecyclerView Item :

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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="wrap_content">

    <android.support.v7.widget.CardView
        android:id="@+id/card_view"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_gravity="center"
        android:layout_margin="5dp"
        android:elevation="3dp"
        card_view:cardCornerRadius="3dp"
        card_view:cardUseCompatPadding="true">

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

            <ImageView
                android:id="@+id/img_city"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:maxHeight="250dp"
                android:background="?attr/selectableItemBackgroundBorderless"
                android:clickable="true"
                android:scaleType="fitXY" />

        </RelativeLayout>

    </android.support.v7.widget.CardView>

</LinearLayout>

i tried to add android:layout_marginBottom to de RecyclerView but is not working.

thanks.

<android.support.constraint.ConstraintLayout 
xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
xmlns:app="http://schemas.android.com/apk/res-auto"/>

 <android.support.v7.widget.RecyclerView 
android:id="@+id/cities_recycler_view" 
android:layout_width="match_parent" 
android:layout_height="0dp" 
android:scrollbars="none" 
android:layout_marginLeft="5dp" 
android:layout_marginRight="5dp" 
android:layout_marginStart="5dp" 
android:layout_marginEnd="5dp" 
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf ="parent"
 app:layout_constraintRight_toRightOf="parent" />
</android.support.constraint.ConstraintLayout>

I'm facing the same problem right now while developing an application for a tablet and it's so annoying there is no answer for this, I have found 2 solutions.

I don't think they are good at all.

First you can either provide a bottom padding like 150dp or create a view at the end of your layout with a height of 150dp.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM