My recycler view doesn't show all items that it has, how can I fix it?

Sergey :

I have something wrong with recyclerView. It doesn't show all items. For example, recyclerView has 12 items, but it shows like 10 with a half items. I can set paddingBottom for it, and it shows all items, but I don't think it is a good way. How can I fix it? I think maybe it becouse of my buttons above it.

acctivity_search_coin.xml

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


    <android.support.v7.widget.RecyclerView
        android:id="@+id/recyclerView2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="8dp"
        android:paddingBottom="50dp"
        app:layout_constraintTop_toBottomOf="@+id/lianerForThreeBtn" />

    <Button
        android:id="@+id/button2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginStart="8dp"
        android:layout_marginTop="8dp"
        android:layout_marginEnd="8dp"
        android:background="#FFFFFF"
        android:paddingStart="5dp"
        android:paddingEnd="5dp"
        android:textSize="15sp"
        android:drawablePadding="6dp"
        android:gravity="center_vertical"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

    <LinearLayout
        android:id="@+id/lianerForThreeBtn"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        app:layout_constraintTop_toBottomOf="@+id/button2">

        <Button
            android:id="@+id/btn1"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:background="#FFFFFF"
            android:layout_weight="1"/>
        <Button
            android:id="@+id/btn2"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:background="#FFFFFF"
            android:layout_weight="1"/>
        <Button
            android:id="@+id/btn3"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:background="#FFFFFF"
            android:layout_weight="1"/>

    </LinearLayout>

</android.support.constraint.ConstraintLayout>

activity_recycler_view_adapter_coin_list.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/recyclerImage"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:padding="10dp">

    <TextView
        android:id="@+id/denominationTV"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentEnd="true"
        android:layout_marginStart="20dp"
        android:layout_marginEnd="8dp"
        android:layout_toEndOf="@+id/secondIV"
        android:textSize="20sp" />

    <TextView
        android:id="@+id/yearTV"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@+id/denominationTV"
        android:layout_alignStart="@+id/denominationTV"
        android:layout_alignParentEnd="true"
        android:layout_marginStart="0dp"
        android:layout_marginTop="6dp"
        android:layout_marginEnd="8dp"
        android:textSize="20sp" />

    <ImageView
        android:id="@+id/firstIV"
        android:layout_width="60dp"
        android:layout_height="60dp"
        android:layout_alignParentStart="true"
        android:layout_marginStart="0dp"/>


    <ImageView
        android:id="@+id/secondIV"
        android:layout_width="60dp"
        android:layout_height="60dp"
        android:layout_marginStart="4dp"
        android:layout_toEndOf="@+id/firstIV"/>

</RelativeLayout>

RecyclerViewAdapterCoinList.java

public class RecyclerViewAdapterCoinList extends RecyclerView.Adapter<RecyclerViewAdapterCoinList.ViewHolder> {

    private List<String> mYearList;
    private List<String> mDenominationList;
    private  List<String> mImageList1;
    private  List<String> mImageList2;
    private LayoutInflater mInflater;
    private ItemClickListener mClickListener;
    Context context;

    RecyclerViewAdapterCoinList(Context context, List<String> denominationList,List<String> yearList, List<String> imageList1,List<String> imageList2) {
        this.mInflater = LayoutInflater.from(context);
        this.mYearList = yearList;
        this.mDenominationList = denominationList;
        this.mImageList1 = imageList1;
        this.mImageList2 = imageList2;
        this.context = context;
    }

    @Override
    public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        View view = mInflater.inflate(R.layout.activity_recycler_view_adapter_coin_list, parent, false);
        return new ViewHolder(view);
    }

    @Override
    public void onBindViewHolder(ViewHolder holder, int position) {
        String year = mYearList.get(position);
        String denomination = mDenominationList.get(position);
        String imageString1 = mImageList1.get(position);
        String imageString2 = mImageList2.get(position);
        holder.denominationTV.setText(denomination);
        holder.yearTV.setText(year);

        try {
            Glide.with(context).load(imageString1).into(holder.firstIV);
            Glide.with(context).load(imageString2).into(holder.secondIV);
        }catch (Exception e){e.printStackTrace();}


    }

    // total number of rows
    @Override
    public int getItemCount() {
        return mDenominationList.size();
    }


    public class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
        TextView denominationTV;
        TextView yearTV;
        ImageView firstIV;
        ImageView secondIV;

        ViewHolder(View itemView) {
            super(itemView);
            denominationTV = itemView.findViewById(R.id.denominationTV);
            yearTV = itemView.findViewById(R.id.yearTV);
            firstIV = itemView.findViewById(R.id.firstIV);
            secondIV = itemView.findViewById(R.id.secondIV);
            itemView.setOnClickListener(this);
        }

        @Override
        public void onClick(View view) {
            if (mClickListener != null) mClickListener.onItemClick(view, getAdapterPosition());
        }
    }

    String getItem(int id) {
        return mDenominationList.get(id);
    }

    void setClickListener(ItemClickListener itemClickListener) {
        this.mClickListener = itemClickListener;
    }

    public interface ItemClickListener {
        void onItemClick(View view, int position);
    }
}
Antonio :

Try adding app:layout_constraintBottom_toBottomOf="parent" in the recycler view and also make the height of the recycler view to be 0dp (match_constraint).

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=146214&siteId=1