当前位置: 首页 > 知识库问答 >
问题:

如何删除回收器视图中的空列表项?

麹渊
2023-03-14

我正在使用回收器视图显示具有多个视图的项目。每当我启动应用程序时,就会显示一些空白。正好等于我的列表项。我提供了截图,请浏览一下。

我想我的代码没有问题。下面是我的代码RecycerView

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".activities.GroupView">
<android.support.v7.widget.RecyclerView
    android:id="@+id/recycler_view_group_content"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:scrollbars="vertical" >
</android.support.v7.widget.RecyclerView>
</RelativeLayout>

适配器代码

import android.content.Context;
import android.support.v7.widget.CardView;
import android.support.v7.widget.RecyclerView;
import android.text.TextUtils;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;

import java.util.List;
import java.util.Objects;

import pdfshare.hemanthreddy.com.pdfshare.R;
import pdfshare.hemanthreddy.com.pdfshare.pojo.PdfItemHolder;
import pdfshare.hemanthreddy.com.pdfshare.pojo.RequestPojo;

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

final int PDF = 0,REQUEST = 1;
List<Object> list;
OnClickListener onClickListener;
Context context;

public GroupContentAdapter(List<Object> list, OnClickListener onClickListener, Context context) {
    this.list = list;
    this.onClickListener = onClickListener;
    this.context = context;
}

public class PdfHolder extends RecyclerView.ViewHolder {

    TextView pdfName,pdfDescription,Helped,uploadedBy;
    Button downloadPdf,viewPdf;
    View container;
    CardView cardView;
    public PdfHolder(View itemView) {
        super(itemView);
        container = itemView;
        uploadedBy = (TextView) itemView.findViewById(R.id.pdf_info_uplodedby);
        pdfName = (TextView) itemView.findViewById(R.id.pdf_name);
        pdfDescription = (TextView) itemView.findViewById(R.id.pdf_description);
        Helped = (TextView) itemView.findViewById(R.id.helped);
        downloadPdf = (Button) itemView.findViewById(R.id.download_pdf);
        viewPdf = (Button) itemView.findViewById(R.id.view_pdf);
        cardView = (CardView) itemView.findViewById(R.id.card_view_pdf_row);

    }
}
public class RequestHolder extends RecyclerView.ViewHolder {
    View container;
    TextView name,request;
    public RequestHolder(View itemView) {
        super(itemView);
        container = itemView;
        name = (TextView) itemView.findViewById(R.id.requested_name);
        request = (TextView) itemView.findViewById(R.id.request);
    }
}
public interface OnClickListener{
    public void OnItemClick(View view,int position);
}
@Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
   RecyclerView.ViewHolder viewHolder;
    LayoutInflater inflater = LayoutInflater.from(parent.getContext());
    switch (viewType) {
        case PDF:
            View v1 = inflater.inflate(R.layout.pdf_row_view,parent,false);
            viewHolder = new PdfHolder(v1);
            break;
        case REQUEST:
            View v2 = inflater.inflate(R.layout.group_request_row_view,parent,false);
            viewHolder = new RequestHolder(v2);
            break;
        default:
            View v3 = inflater.inflate(R.layout.pdf_row_view,parent,false);
            viewHolder = new PdfHolder(v3);
    }
    return viewHolder;
}

@Override
public void onBindViewHolder(RecyclerView.ViewHolder holder, final int position) {
    if(holder.getItemViewType() == PDF)
    {

        PdfItemHolder pdfItemHolder = (PdfItemHolder) list.get(position);
        PdfHolder pdfHolder = (PdfHolder) holder;
        if(!TextUtils.isEmpty(pdfItemHolder.getPdfName())) {
            pdfHolder.pdfName.setText(pdfItemHolder.getPdfName());
            pdfHolder.pdfDescription.setText(pdfItemHolder.getPdfDescription());
            pdfHolder.Helped.setText(pdfItemHolder.getHelped());
            pdfHolder.uploadedBy.setText(pdfItemHolder.getUplodedBy());
            pdfHolder.downloadPdf.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    Toast.makeText(context, "downloading pdf bitch", Toast.LENGTH_LONG).show();
                }
            });
            pdfHolder.container.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    onClickListener.OnItemClick(v, position);
                }
            });
        }
        else
        {
            Toast.makeText(context,"empty",Toast.LENGTH_LONG).show();
            Log.e("empty","empty");
            pdfHolder.container.setVisibility(View.GONE);
            pdfHolder.pdfName.setVisibility(View.GONE);
            pdfHolder.pdfDescription.setVisibility(View.GONE);
            pdfHolder.Helped.setVisibility(View.GONE);
            pdfHolder.downloadPdf.setVisibility(View.GONE);
            pdfHolder.uploadedBy.setVisibility(View.GONE);
            pdfHolder.viewPdf.setVisibility(View.GONE);
        }
    }
    else
    {
        RequestHolder requestHolder = (RequestHolder) holder;
        RequestPojo requestPojo = (RequestPojo) list.get(position);
        requestHolder.name.setText(requestPojo.getName());
        requestHolder.request.setText(requestPojo.getRequest());

    }
}

@Override
public int getItemCount() {
    return list.size();
}
@Override
public int getItemViewType(int position)
{
    if(list.get(position) instanceof PdfItemHolder)
        return PDF;
    else if(list.get(position) instanceof RequestPojo)
        return REQUEST
        ;
    return -1;
}
}
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textAppearance="?android:attr/textAppearanceMedium"
            android:text="Requested By : "
            android:id="@+id/textView7" />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textAppearance="?android:attr/textAppearanceLarge"
            android:text="Name"
            android:id="@+id/requested_name"
            android:layout_alignParentTop="true"
            android:layout_toRightOf="@+id/textView7"
            android:layout_toEndOf="@+id/textView7" />
        <View
            android:layout_width="fill_parent"
            android:layout_height="2dp"
            android:background="#c0c0c0"

            android:id="@+id/view1"
            android:layout_below="@+id/textView7"
            android:layout_alignParentLeft="true"
            android:layout_alignParentStart="true" />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textAppearance="?android:attr/textAppearanceMedium"
            android:text="Medium Text"
            android:id="@+id/request"
            android:lines="2"
            android:layout_below="@+id/view1"
            android:layout_alignParentLeft="true"
            android:layout_alignParentStart="true"/>
    </RelativeLayout>
    </android.support.v7.widget.CardView>
 </LinearLayout>`
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:card_view="http://schemas.android.com/apk/res-auto">
<android.support.v7.widget.CardView
    android:id="@+id/card_view_pdf_row"
    android:layout_gravity="center"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_margin="5dp"
    card_view:cardCornerRadius="3dp"
    card_view:contentPadding="2dp">
    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <TextView
            android:layout_width="250dp"
            android:layout_height="wrap_content"
            android:textAppearance="?android:attr/textAppearanceLarge"
            android:text="pdfName"
            android:id="@+id/pdf_name"
            android:layout_alignParentTop="true"
            android:layout_alignParentLeft="true"
            android:layout_alignParentStart="true"

            android:textSize="25dp"
            android:lines="1" />
        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:textAppearance="?android:attr/textAppearanceSmall"
            android:text="pdf descriptionl"
            android:id="@+id/pdf_description"
            android:layout_below="@+id/pdf_name"
            android:layout_alignParentLeft="true"
            android:layout_alignParentStart="true"
            android:lines="2" />

        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="View Pdf"
            android:id="@+id/view_pdf"
            android:layout_alignTop="@+id/download_pdf"
            android:layout_toRightOf="@+id/pdf_info_uplodedby"
            android:layout_toEndOf="@+id/pdf_info_uplodedby" />
        <Button
            style="?android:attr/buttonStyleSmall"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Download Pdf"
            android:id="@+id/download_pdf"
            android:layout_alignParentRight="true"
            android:layout_alignParentEnd="true"
            android:layout_below="@+id/pdf_description" />
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textAppearance="?android:attr/textAppearanceSmall"
            android:text="helped"
            android:id="@+id/helped"
            android:textSize="15dp"
            android:layout_alignBottom="@+id/view_pdf"
            android:layout_alignParentLeft="true"
            android:layout_alignParentStart="true" />
        <View
            android:layout_width="fill_parent"
            android:layout_height="2dp"
            android:background="#c0c0c0"
            android:layout_alignTop="@+id/view_pdf"
            android:layout_alignParentLeft="true"
            android:layout_alignParentStart="true"
            android:id="@+id/view" />
        <View
            android:layout_width="fill_parent"
            android:layout_height="2dp"
            android:background="#c0c0c0"

            android:id="@+id/view1"
            android:layout_below="@+id/view_pdf"
            android:layout_alignParentLeft="true"
            android:layout_alignParentStart="true" />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textAppearance="?android:attr/textAppearanceMedium"
            android:text="Upladed by : "
            android:id="@+id/pdf_info_uplodedby"
            android:layout_below="@+id/view_pdf"
            android:layout_alignParentLeft="true"
            android:layout_alignParentStart="true" />
    </RelativeLayout>


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

 </RelativeLayout>

请帮帮我。谢谢。

共有1个答案

卞轶
2023-03-14

在所有列表项布局文件中:

pdf_row_view.xml, group_request_row_view.xml, pdf_row_view.xml 

设置根布局的layout_height=“wrap_content”

 类似资料:
  • 我正在尝试删除空列项目装饰,如下图所示。我最初想在注释中使用下面的代码根据内容限制最后一行的跨距计数,但我没有成功。 以下是代码和图像的结果。 当我取消注释代码并运行应用程序时,结果如下: 任何代码参考或链接都会有所帮助。提前感谢。

  • 我正在尝试在我的 上实现 ,但我没有得到任何结果。 我遵循了这个教程和这个技巧,但是没有人为我工作。 我已经实现了: 但它不让我编译,因为它们是不同的< code > viewmoder ,因为我创建了两个< code > viewmoder 类,但它们< code >扩展了Recycler。ViewHolder所以我不明白... 我正在尝试这样做,因为我有一个,我希望当列表为空时,它会显示一个,

  • 我试图允许刷卡以删除回收器视图中的项目,但由于某些原因,它并不总是玩得很好,显示的是空白而不是纸牌。 我已经制作了抛出和移动项目的代码句柄,以触发滑动动画,当滑动动画结束时,项目将从数据集中删除并通知适配器。 可能是因为我是RecyclerView新手,但是找不到缺少的东西。 我做了什么错在哪里?为什么它有时工作得很好,有时却不起作用? 有没有更好的解决方案来处理滑动到移除的处理?

  • 编辑:我的问题是ListView有没有比RecyclerView更有优势的地方?如果不是,那么为什么谷歌没有将它标记为贬值。此外,虽然我们可以在库中找到ListView,但如果我们创建了一个新的Project,但要使用RecyclerView,则必须使用另一个依赖项。

  • 问题内容: 我有一个清单,里面有空清单: 如何删除空列表,以便获得: 我尝试了list.remove(’‘),但这不起作用。 问题答案: 尝试 如果您想摆脱所有“虚假”的东西,例如空字符串,空元组,零,您也可以使用

  • 我使用GridLayoutManager的回收视图显示自定义画廊在我的应用程序。我已经实现了所有的功能,如画廊。但是有一件小事让我纠结。在一行我有3个图像。但是我需要减少图像之间的空间。在这样做的时候,我不想连续显示超过3张图像,但是图像大小(如果需要)可以增加。