java - Recyclerview android studio "hiding"?

标签 java android android-recyclerview

所以我有一个回收 View ,并且在我的回收 View 中我有项目。如果我删除回收器 View 中的所有可见项目,似乎仍然留下一个本质上“隐藏”的项目,这是什么原因?我相信这是一个简单的修复,但它是什么?

public class AdapterTags extends  RecyclerView.Adapter<AdapterTags.ViewTags>{
private LayoutInflater mLayoutInflater;
private ArrayList<Search> ListSearch=new ArrayList<>();
public AdapterTags(Context context){
    mLayoutInflater=LayoutInflater.from(context);
}
public void setTagsList (ArrayList<Search> ListSearch){
    this.ListSearch=ListSearch;
    notifyItemRangeChanged(0,ListSearch.size());
}

@Override
public ViewTags onCreateViewHolder(ViewGroup parent, int viewType) {
    View view= mLayoutInflater.inflate(R.layout.fragment_tags, parent, false);
    ViewTags viewholder=new ViewTags(view);
    return viewholder;
}

@Override
public void onBindViewHolder(ViewTags holder, int position) {
    final Search currentTags=ListSearch.get(position);
    holder.mSearchText.setText(currentTags.getMtitle());
    holder.mAnswerPointsSearch.setText(currentTags.getMkey());
    holder.mSearchId.setText(currentTags.getMid());
    holder.mCourseId.setText(currentTags.getCourseId());
}

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

 class ViewTags extends RecyclerView.ViewHolder implements View.OnClickListener {
    private TextView mSearchText;
    private TextView mAnswerPointsSearch;
    private TextView mSearchId;
    private TextView mCourseId;



    public ViewTags(View itemView){
        super(itemView);
        mSearchText=(TextView)itemView.findViewById(R.id.SearchText);
        mAnswerPointsSearch=(TextView)itemView.findViewById(R.id.AnswerPointsSearch);
        mSearchId=(TextView)itemView.findViewById(R.id.SearchId);
        mCourseId=(TextView)itemView.findViewById(R.id.CourseTextView);
    }

通话 Activity

private void JsonRequestMethod() {
    mVolleySingleton = VolleySingleton.getInstance();
    mRequestQueue = mVolleySingleton.getRequestQueue();
    JsonArrayRequest request = new JsonArrayRequest(Request.Method.GET, URL_ANSWER, (String) null, new Response.Listener<JSONArray>() {
        @Override
        public void onResponse(JSONArray response) {
            ListSearch = parseJSONResponseQuestion(response);
            mAdapterDashBoard.setTagsList(ListSearch);
            System.out.println(response);
            System.out.println("it worked!!!");
        }

    }, new Response.ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError error) {
            System.out.println(error);

        }
    });
    mRequestQueue.add(request);
}

最佳答案

我建议您通过构造函数传递项目,而不是在设置项目后立即调用notifyItemRangeChanged()。您还应该检查 getItemCount 方法中的项目是否为空,因为如果是,您的应用程序将会崩溃。希望这会有所帮助。

关于java - Recyclerview android studio "hiding"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35320767/

相关文章:

android - RecyclerView 不交换适配器,onBindViewHolder IndexOutOfBounds

Java 可执行应用程序

java - 如何更改 JPA - Spring Framework 数据库中的顺序

java - 如何使用 ExecutionEngine 获取 neo4j 中的关系列表?

javascript - 安卓 WebView : Very laggy button response

java - 如何通过改造在RecyclerView中实现分页?

android - 如何在recyclerview中实现分页?

java - "com.google.zxing.client.android.CaptureActivity"未找到且无法解析

android - Twitter4j - 无法解析方法 - setUsessl(boolean)

android - 从 Eclipse 移植和升级 Android 库