Android RecyclerView列表仅限于一个片段,不限制另一个片段

Android RecyclerView列表仅限于一个片段,不限制另一个片段,android,android-fragments,android-recyclerview,Android,Android Fragments,Android Recyclerview,嗨,我想在两个不同的片段中创建一个回收器视图,其中一个片段具有限制回收器视图列表,该列表仅显示4个列表,另一个片段显示所有列表项,提前感谢。 主类代码 private void populatelist() { List<reviewModel> reviewModelList = new ArrayList<>(); for (int i = 1; i < 20; i++) { int imges = R.drawable.ic

嗨,我想在两个不同的片段中创建一个回收器视图,其中一个片段具有限制回收器视图列表,该列表仅显示4个列表,另一个片段显示所有列表项,提前感谢。 主类代码

private void populatelist() {

    List<reviewModel> reviewModelList = new ArrayList<>();

    for (int i = 1; i < 20; i++) {
        int imges = R.drawable.ic_userlogin;
        String names = "User Name is " + i;
        String dates = "New Dates is " + i;
        String detail = "User details about is " + i;

        reviewModel models = new reviewModel(names, dates, detail, 4, imges);

        reviewModelList.add(models);
    }

    setupRecycle(reviewModelList);
}

private void setupRecycle(List<reviewModel> reviewModelList) {

    if (adaptOverView == null)
        adaptOverView = new reviewAdapt(this, 5);

    adaptOverView.setReviewList(reviewModelList);

    LinearLayoutManager layout = new LinearLayoutManager(this);
    layout.setSmoothScrollbarEnabled(true);
    recyclerOverView.setLayoutManager(layout);
    recyclerOverView.setHasFixedSize(true);
    recyclerOverView.setAdapter(adaptOverView);
}
private Context mContext;
private List<reviewModel> reviewList;

private int limit;

public void setReviewList(List<reviewModel> list){
    this.reviewList = list;
    this.notifyDataSetChanged();
}
public reviewAdapt(Context mContext, int limit) {
    this.mContext = mContext;
    this.limit = limit;
}

public reviewAdapt(Context mContext, List<reviewModel> reviewList, int limit) {
    this.mContext = mContext;
    this.reviewList = reviewList;
    this.limit = limit;
}

@NonNull
public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {

    View view = LayoutInflater.from(mContext).inflate(R.layout.review_design, parent, false);
    ViewHolder holder = new ViewHolder(view);
    return holder;
}

@Override
public void onBindViewHolder(@NonNull ViewHolder holder, int position) {

        if (position < limit) {
            reviewModel model = reviewList.get(position);

            Log.d("TAG", "onBindViewHolder_Limit: "+limit);
            Log.d("TAG", "onBindViewHolder_Position_Is_InLimit: "+position);
            holder.textViewName.setText(model.getName());
            holder.textViewDate.setText(model.getDate());
            holder.ratingBarRecycle.setRating(model.getRatingBar());
            holder.textViewDetails.setText(model.getDetails());
            holder.imageViewRecycle.setImageResource(model.getImg());
        }
}

@Override
public int getItemCount() {

        return reviewList.size();

}


public class ViewHolder extends RecyclerView.ViewHolder {
    TextView textViewName, textViewDate, textViewDetails;
    RatingBar ratingBarRecycle;
    ImageView imageViewRecycle;

    public ViewHolder(@NonNull View itemView) {
        super(itemView);

        textViewName = itemView.findViewById(R.id.name_review);
        textViewDate = itemView.findViewById(R.id.date_review);
        textViewDetails = itemView.findViewById(R.id.details_review);
        ratingBarRecycle = itemView.findViewById(R.id.review_ratingsBar);
        imageViewRecycle = itemView.findViewById(R.id.profile_image);


    }


}
}
private void populatelist(){
List reviewModelList=new ArrayList();
对于(int i=1;i<20;i++){
int imges=R.drawable.ic_userlogin;
String names=“用户名为”+i;
String dates=“新日期为”+i;
String detail=“用户详细信息是”+i;
reviewModel模型=新的reviewModel(名称、日期、详细信息、4、图片);
添加(模型);
}
setupRecycle(ReviewModelist);
}
私有void setupRecycle(列表reviewModelList){
如果(AdapterOverview==null)
AdapterOverview=新的reviewAdapt(本,5);
AdapterOverview.setReviewList(reviewModelList);
LinearLayoutManager布局=新的LinearLayoutManager(此);
layout.setSmoothScrollbarEnabled(真);
recyclerOverView.setLayoutManager(布局);
recyclerOverView.setHasFixedSize(true);
recyclerOverView.setAdapter(适配器概述);
}
适配器类代码

private void populatelist() {

    List<reviewModel> reviewModelList = new ArrayList<>();

    for (int i = 1; i < 20; i++) {
        int imges = R.drawable.ic_userlogin;
        String names = "User Name is " + i;
        String dates = "New Dates is " + i;
        String detail = "User details about is " + i;

        reviewModel models = new reviewModel(names, dates, detail, 4, imges);

        reviewModelList.add(models);
    }

    setupRecycle(reviewModelList);
}

private void setupRecycle(List<reviewModel> reviewModelList) {

    if (adaptOverView == null)
        adaptOverView = new reviewAdapt(this, 5);

    adaptOverView.setReviewList(reviewModelList);

    LinearLayoutManager layout = new LinearLayoutManager(this);
    layout.setSmoothScrollbarEnabled(true);
    recyclerOverView.setLayoutManager(layout);
    recyclerOverView.setHasFixedSize(true);
    recyclerOverView.setAdapter(adaptOverView);
}
private Context mContext;
private List<reviewModel> reviewList;

private int limit;

public void setReviewList(List<reviewModel> list){
    this.reviewList = list;
    this.notifyDataSetChanged();
}
public reviewAdapt(Context mContext, int limit) {
    this.mContext = mContext;
    this.limit = limit;
}

public reviewAdapt(Context mContext, List<reviewModel> reviewList, int limit) {
    this.mContext = mContext;
    this.reviewList = reviewList;
    this.limit = limit;
}

@NonNull
public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {

    View view = LayoutInflater.from(mContext).inflate(R.layout.review_design, parent, false);
    ViewHolder holder = new ViewHolder(view);
    return holder;
}

@Override
public void onBindViewHolder(@NonNull ViewHolder holder, int position) {

        if (position < limit) {
            reviewModel model = reviewList.get(position);

            Log.d("TAG", "onBindViewHolder_Limit: "+limit);
            Log.d("TAG", "onBindViewHolder_Position_Is_InLimit: "+position);
            holder.textViewName.setText(model.getName());
            holder.textViewDate.setText(model.getDate());
            holder.ratingBarRecycle.setRating(model.getRatingBar());
            holder.textViewDetails.setText(model.getDetails());
            holder.imageViewRecycle.setImageResource(model.getImg());
        }
}

@Override
public int getItemCount() {

        return reviewList.size();

}


public class ViewHolder extends RecyclerView.ViewHolder {
    TextView textViewName, textViewDate, textViewDetails;
    RatingBar ratingBarRecycle;
    ImageView imageViewRecycle;

    public ViewHolder(@NonNull View itemView) {
        super(itemView);

        textViewName = itemView.findViewById(R.id.name_review);
        textViewDate = itemView.findViewById(R.id.date_review);
        textViewDetails = itemView.findViewById(R.id.details_review);
        ratingBarRecycle = itemView.findViewById(R.id.review_ratingsBar);
        imageViewRecycle = itemView.findViewById(R.id.profile_image);


    }


}
}
私有上下文mContext;
私人名单评审员;
私有整数限制;
公共作废设置审阅列表(列表){
this.reviewList=列表;
this.notifyDataSetChanged();
}
public reviewAdapt(上下文mContext,整数限制){
this.mContext=mContext;
这个极限=极限;
}
public reviewAdapt(上下文mContext、列表reviewList、整数限制){
this.mContext=mContext;
this.reviewList=reviewList;
这个极限=极限;
}
@非空
public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent,int viewType){
视图=布局从(mContext)变平。充气(R.layout.review\u design,parent,false);
ViewHolder=新的ViewHolder(视图);
报税表持有人;
}
@凌驾
public void onBindViewHolder(@NonNull ViewHolder,int位置){
if(位置<极限){
reviewModel=reviewList.get(位置);
Log.d(“标签”,“onBindViewHolder\u限制:”+限制);
Log.d(“标记”、“onBindViewHolder\u位置\u为\u InLimit:+Position”);
holder.textViewName.setText(model.getName());
holder.textViewDate.setText(model.getDate());
holder.ratingBarRecycle.setRating(model.getRatingBar());
holder.textViewDetails.setText(model.getDetails());
holder.imageViewRecycle.setImageResource(model.getImg());
}
}
@凌驾
public int getItemCount(){
返回reviewList.size();
}
公共类ViewHolder扩展了RecyclerView.ViewHolder{
TextView textViewName、textViewDate、textViewDetails;
额定棒额定棒循环;
ImageView imageViewRecycle;
公共视图持有者(@NonNull View itemView){
超级(项目视图);
textViewName=itemView.findViewById(R.id.name\u review);
textViewDate=itemView.findViewById(R.id.date\U review);
textViewDetails=itemView.findViewById(R.id.details\u review);
ratingBarRecycle=itemView.findViewById(R.id.review\u ratingsBar);
imageViewRecycle=itemView.findViewById(R.id.profile\u image);
}
}
}

根据我的理解,您正在使用限制变量来限制片段的列表大小。但是你没有正确地使用它。如果我没有错,请尝试限制适配器中的项目计数,如下所示-

@Override
public int getItemCount() {
    return limit;
}

如果我这样做,那么它将在两个片段中都受到限制,但我希望列表限制在1个片段中,但其他片段将显示完整的列表。我尝试过这个答案,但它限制了我使用回收器视图的所有地方。这是因为您从不同的片段发送相同的限制值。尝试发送limit=4(一个)和limit=list.size(另一个)确保列表大小不是4,以便您可以区分这两种情况。我不明白,请解释一下我在哪里设置limit=list.size和其他设置limit。有一个类我想设置限制为4,但另一个片段类没有问题。根据你的问题,你有两个片段。在一个片段中,您只想显示4个项目,在第二个片段中,您想显示列表中的所有项目。我说得对吗?