如何阻止 RecyclerView 在主行下方显示空行?

How to stop RecyclerView from showing empty row below main row?

我在应用程序中使用了 Recycler view 和 Card View。

当我为 Imageview 设置一些高度时,它在 Recycler 视图下方显示空行。

如何删除空行?

我在下面的截图中强调了这个问题。

请在下面找到代码。

Item_view.xml

<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="match_parent"
android:orientation="vertical">

<android.support.v7.widget.CardView
    xmlns:card_view="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_margin="5dp"
    card_view:cardCornerRadius="5dp">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical">

        <ImageView
            android:id="@+id/img_row_women"
            android:layout_width="190dp"
            android:layout_height="150dp"
            android:layout_margin="7dp"
            android:scaleType="fitXY" />


        <TextView
            android:id="@+id/txv_women_name"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_horizontal"
            android:layout_marginLeft="10dp"
            android:text="" />

        <TextView
            android:id="@+id/txv_women_description"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_horizontal"
            android:layout_marginLeft="10dp"
            android:text="" />

    </LinearLayout>


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

<android.support.v7.widget.CardView

    android:layout_width="match_parent"
    android:layout_height="275dp"
    android:layout_margin="5dp"
    card_view:cardCornerRadius="5dp">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">

        <ImageView
            android:id="@+id/img_row_men"
            android:layout_width="190dp"
            android:layout_height="150dp"
            android:layout_margin="7dp"
            android:scaleType="fitXY" />


        <TextView
            android:id="@+id/txv_men_name"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_horizontal"
            android:layout_marginLeft="10dp"
            android:text="" />

        <TextView
            android:id="@+id/txv_men_description"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_horizontal"
            android:layout_marginLeft="10dp"
            android:text="" />


    </LinearLayout>


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

Main.xml

<?xml version="1.0" encoding="utf-8"?>

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="match_parent"
android:fillViewport="true"
android:scrollbars="vertical">

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#fff"

    android:orientation="vertical"
    android:weightSum="2">

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginLeft="15dp"
        android:layout_marginRight="15dp"
        android:layout_marginTop="15dp"
        android:layout_weight="1"
        android:orientation="horizontal">


        <TextView

            android:id="@+id/tab1_women"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Womens"
            android:textAppearance="?android:attr/textAppearanceMedium"
            android:textColor="#000"
            android:textSize="20dp"

            />

        <TextView
            android:id="@+id/tab1_women_viewall"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentRight="true"
            android:text="View all"
            android:textAppearance="?android:attr/textAppearanceMedium"
            android:textColor="#000"
            android:textSize="20dp" />

        <android.support.v7.widget.RecyclerView
            android:id="@+id/recycleView_women"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_marginTop="30dp"
            android:clipToPadding="false"
            android:minHeight="250dp">

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

    </RelativeLayout>

    <RelativeLayout

        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginLeft="15dp"
        android:layout_marginRight="15dp"
        android:layout_marginTop="15dp"
        android:orientation="horizontal">


        <TextView

            android:id="@+id/tab1_men"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Mens"
            android:textAppearance="?android:attr/textAppearanceMedium"
            android:textColor="#000"
            android:textSize="20dp"

            />

        <TextView
            android:id="@+id/tab1_men_viewall"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentRight="true"
            android:text="View all"
            android:textAppearance="?android:attr/textAppearanceMedium"
            android:textColor="#000"
            android:textSize="20dp" />

        <android.support.v7.widget.RecyclerView
            android:id="@+id/recycleView_men"

            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_marginTop="30dp"
            android:minHeight="250dp">

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

    </RelativeLayout>


</LinearLayout>

MyAdapter.java

public class MyCustomAdapter_Cardview extends RecyclerView.Adapter<MyCustomAdapter_Cardview.MyViewHolder> {


Context context;

ArrayList<RowItem> val;
RowItem ri = new RowItem();

LayoutInflater inflater;


public MyCustomAdapter_Cardview(Context context, ArrayList<RowItem> val) {

    this.context = context;
    this.val = val;
    inflater = LayoutInflater.from(context);

}

@Override
public MyViewHolder onCreateViewHolder(ViewGroup parent, int position) {

    View view = inflater.inflate(R.layout.list_item_row, parent, false);

    MyViewHolder holder = new MyViewHolder(view);

    return holder;
}

@Override
public void onBindViewHolder(MyViewHolder myViewHolder, final int position) {

    ri = val.get(position);
    myViewHolder.textview_women_name.setText(ri.getTitle());
    Picasso.with(context).load("" + ri.getImage()).into(myViewHolder.imageView_women);



}


@Override
public int getItemCount() {
    return val.size();
}


class MyViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {

    TextView textview_women_name, textView_men, textView_des_women, textView_des_men;
    ImageView imageView_women, imageView_men;


    public MyViewHolder(View itemView) {
        super(itemView);

        textview_women_name = (TextView) itemView.findViewById(R.id.txv_women_name);
        imageView_women = (ImageView) itemView.findViewById(R.id.img_row_women);
        textView_des_women = (TextView) itemView.findViewById(R.id.txv_women_description);

        textView_men = (TextView) itemView.findViewById(R.id.txv_men_name);
        imageView_men = (ImageView) itemView.findViewById(R.id.img_row_men);
        textView_des_men = (TextView) itemView.findViewById(R.id.txv_men_description);


    }

    @Override
    public void onClick(View view) {
       /* Intent intent = new Intent(view.getContext(), Tab1.class);
        SharedPreferences sharedPreferences = context.getSharedPreferences("Fashion", Context.MODE_PRIVATE);

        SharedPreferences.Editor sedt = sharedPreferences.edit();
        sedt.putString("textvalue", textView_des_women.getText().toString());
        sedt.putString("txtopertaive", textview_women_name.getText().toString());
        sedt.commit();
        view.getContext().startActivity(intent);*/

    }

}


}

好的....在您的适配器中放入此代码....

@Override
public void onBindViewHolder(MyViewHolder myViewHolder, final int position) {

     myViewHolder.raw2.setVisibility(View.Gone);
    ri = val.get(position);
    myViewHolder.textview_women_name.setText(ri.getTitle());
    Picasso.with(context).load("" + ri.getImage()).into(myViewHolder.imageView_women);
}

class MyViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {

    CardView raw1,raw2;
    TextView textview_women_name, textView_men, textView_des_women, textView_des_men;
    ImageView imageView_women, imageView_men;


    public MyViewHolder(View itemView) {
        super(itemView);

        textview_women_name = (TextView) itemView.findViewById(R.id.txv_women_name);
        imageView_women = (ImageView) itemView.findViewById(R.id.img_row_women);
        textView_des_women = (TextView) itemView.findViewById(R.id.txv_women_description);

        textView_men = (TextView) itemView.findViewById(R.id.txv_men_name);
        imageView_men = (ImageView) itemView.findViewById(R.id.img_row_men);
        textView_des_men = (TextView) itemView.findViewById(R.id.txv_men_description);

     raw1 = (CardView) itemview.findViewById(R.id.raw1);
     raw2 = (CardView) itemview.findViewById(R.id.raw2);

    }