Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android Recyclerview仅显示3个项目,查看更多以显示所有数据_Android - Fatal编程技术网

Android Recyclerview仅显示3个项目,查看更多以显示所有数据

Android Recyclerview仅显示3个项目,查看更多以显示所有数据,android,Android,在此处输入代码我正在尝试创建一个recyclerview,每次执行时仅显示3个项目,然后有一个查看更多项目的视图 ServicesAdapter @Override public void onBindViewHolder(@NonNull MyViewHolder myViewHolder, int i) { TypeProducts str = services.get(myViewHolder.getAdapterPosition()); myViewHolder.

在此处输入代码我正在尝试创建一个recyclerview,每次执行时仅显示3个项目,然后有一个查看更多项目的视图

ServicesAdapter 


@Override
public void onBindViewHolder(@NonNull MyViewHolder myViewHolder, int i) {
    TypeProducts str = services.get(myViewHolder.getAdapterPosition());

    myViewHolder.title.setText(str.getName());
    Glide.with(context).load(str.getImageUrl()).into(myViewHolder.imageView);

}
服务屏幕适配器

public void onBindViewHolder(@NonNull MyViewHolder myViewHolder, int i) {
    TypeServices str = typeServices.get(myViewHolder.getAdapterPosition());


    Log.d("getsize",String.valueOf(typeServices.size()));


    ServicesAdapter serviceadapter = new ServicesAdapter(context, str.getProducts());


    myViewHolder.tvTitle.setText(str.getName());
    myViewHolder.rclist.setAdapter(serviceadapter);

    myViewHolder.tvViewMore.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

        }
    });


}

您的意思是希望显示3个项目,但每次运行时,项目都会变大? 您可能忘记删除以前的项目并添加3个新项目。或使用新项目编辑3个项目

yourList.set(itemPosition, yourObject);
                                            
 yourRecyclerAdapter.notifyItemChanged(itemPosition);

for(int i=0;i
然后添加新项目

yourList.set(itemPosition, yourObject);
                                            
 yourRecyclerAdapter.notifyItemChanged(itemPosition);
编辑:

将以下代码添加到适配器类:

public Filter getFilter(bool getFirsts)
    {
        return new Filter() {
            @Override
            protected FilterResults performFiltering(CharSequence charSequence) {
             List<YourObject> filteredList=new ArrayList<>();
            if(getFirsts){
                String s=charSequence.toString();
                YourObjectListFiltered=YourObjectList;
               
                for (YourObject row:YourObjectList)
                {
                     //Write here any condition that separates those 3 items from others.
                    if(row.getItemPosition()>=0 && row.getItemPosition()<=2)
                        filteredList.add(row);
                }
            }else{
                filteredList=YourObjectList;
             }
                YourObjectListFiltered=filteredList;

                FilterResults filterResults=new FilterResults();
                filterResults.values=surveyTitlesFiltered;
                return filterResults;
            }

            @Override
            protected void publishResults(CharSequence charSequence, FilterResults filterResults) {
                YourObjectListFiltered=(ArrayList<YourObject>)filterResults.values;
                notifyDataSetChanged();
            }
        };
    }
公共过滤器getFilter(bool getFirsts)
{
返回新筛选器(){
@凌驾
受保护过滤器结果执行过滤(CharSequence CharSequence){
List filteredList=新建ArrayList();
如果(获得第一名){
字符串s=charSequence.toString();
YourObjectListFiltered=YourObjectList;
for(YourObject行:YourObjectList)
{
//在这里写下将这三个项目与其他项目分开的任何条件。

如果(row.getItemPosition()>=0&&row.getItemPosition()据我所知,您希望显示3个项目,然后按btn启动一个新的活动,其中将显示下3个项目。您可以有意地将新值的位置传递给,创建一个包含下3个项目的临时列表,并将其传递给“回收器”视图。这可能行得通,但我认为这不是一种非常有效的方法因为你会创造很多新的活动

---编辑---


然后你可以有一个值来保存位置,当btn被按下时,添加临时列表上的下一个项目并更新回收器视图。

已经尝试过了,它可以工作,但如何实现按钮视图更多你可以添加一个按钮作为列表视图页脚,而不是我已经得到了按钮,我只需要限制和显示更多请发布e代码您到目前为止没有删除该项只是为了隐藏另一项只是为了显示前3项,然后当您单击“查看更多”时,所有数据都将显示