2015-10-17 38 views
2

我在最后加载progressBar项目以加载更多内容,加载完成后,在将适配器添加到元素之前删除此项目。 但该项目未正确删除。Android - RecyclerView notifyItemRemoved无法正常工作

if (arrayAdapter != null) { 
     arrayAdapter.list.add(null); 
     arrayAdapter.notifyItemInserted(arrayAdapter.getItemCount() - 1); 
     arrayAdapter.notifyItemRangeChanged(arrayAdapter.getItemCount(), arrayAdapter.getItemCount()); 
    } 
    serverRequests.getQuestionsAnsweredInBackground(userID, type, startLoad, new GetQuestionCallBack() { 
     @Override 
     public void done(ArrayList<Question> questions) { 
      if (arrayAdapter != null) { 
       arrayAdapter.list.remove(arrayAdapter.getItemCount() - 1); 
       arrayAdapter.notifyItemRemoved(arrayAdapter.getItemCount()); 
       arrayAdapter.notifyItemRangeChanged(arrayAdapter.getItemCount(), arrayAdapter.getItemCount()); 
      } 
      if (questions != null) { 
       if (arrayAdapter == null) { 
        arrayAdapter = new QuestionsAnsweredAdapter(getActivity(), R.layout.layout_questions_answered_item, questions, QuestionsAnswered.this); 
        lvQuestionsAnswered.setAdapter(arrayAdapter); 
        listLayout.setVisibility(View.VISIBLE); 
       } else { 
        final int positionStart = arrayAdapter.getItemCount(); 
        arrayAdapter.list.addAll(questions); 
        arrayAdapter.notifyItemRangeInserted(positionStart, questions.size()); 
       } 
       startLoad += questions.size(); 
       loading = true; 
      } 
      progressBar.setVisibility(View.GONE); 
     } 
    }); 

enter image description here

+0

这是一个错误或我做了错误的地方完成后加载新数据

if(!mIsloading) { arrayAdapter.list.add(null); arrayAdapter.notifyItemInserted(arrayAdapter.list.size() - 1); mIsloading = true; } 

之前? – Okn

回答

0

与取数据

serverRequests.getQuestionsAnsweredInBackground(userID, type, startLoad, new GetQuestionCallBack() { 
     @Override 
     public void done(ArrayList<Question> questions) { 
      if (arrayAdapter.list.size() > 0 && arrayAdapter.list.get(arrayAdapter.list.size() - 1) == null) { 
        arrayAdapter.list.remove(arrayAdapter.list.size() - 1); 
        arrayAdapter.list.notifyItemRemoved(arrayAdapter.list.size()); 
       } 
      mIsloading = false; 
      } 
相关问题