IndexOutOfBoundsException: A inconsistência detectada. item inválido posição- RecylerView

votos
0

IndexOutOfBoundsException: A inconsistência detectada. item inválido posição- RecylerView

Eu tenho dois vista reciclador deixe Ser RecylerA e RecylerB Enquanto o RecyclerB na última posição que eu carregar os dados restantes e notificar o adaptador RecyclerB. Sua multa trabalho para me.But ao carregar RecyclerB, eu tento clique no RecyclerA, RecylerA realmente limpa o adaptador RecylerB e carregar novos dados através API.Almost todos os tempos seu bom trabalho para mim. Mas algum tempo eu passar por um problema como acompanhamento,

 java.lang.IndexOutOfBoundsException: Inconsistency detected. Invalid item position 24(offset:24).state:36 android.support.v7.widget.RecyclerView{620771f VFED..... ...
        at android.support.v7.widget.RecyclerView$Recycler.a(Unknown Source:389)
        at android.support.v7.widget.GapWorker.prefetchPositionWithDeadline(Unknown Source:14)
        at android.support.v7.widget.GapWorker.flushTaskWithDeadline(Unknown Source:15)
        at android.support.v7.widget.GapWorker.flushTasksWithDeadline(Unknown Source:22)
        at android.support.v7.widget.GapWorker.a(Unknown Source:3)
        at android.support.v7.widget.GapWorker.run(Unknown Source:71)
        at android.os.Handler.handleCallback(Handler.java:790)
        at android.os.Handler.dispatchMessage(Handler.java:99)
        at android.os.Looper.loop(Looper.java:164)
        at android.app.ActivityThread.main(ActivityThread.java:6626)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:811)

Eu tento a quase toda a solução I ver em StackOverflow como

mRecyclerViewproduct.getRecycledViewPool().clear();
mRecyclerViewproduct.setItemAnimator(null);

antes de notificar adaptador. Além disso, um tempo de atraso adicional para notificar adaptador. Atualizar o adaptador notificação usando posição etc. Mas nenhuma solução funciona para mim. Existe alguma nova idéia ou solução para este ??

Update: Adaptador para RecyclerA como segue (viewHolder)

if (selectedPosition == position) {
            holder.list_rv_productchip.setTextColor(Color.WHITE);
            holder.itemView.setBackground(context.getResources().getDrawable(R.drawable.chipselected));
        } else {
            holder.list_rv_productchip.setTextColor(Color.BLACK);
            holder.itemView.setBackground(context.getResources().getDrawable(R.drawable.quantityblack));
        }

        holder.itemView.setOnClickListener(view -> {
            selectedPosition = position;
            notifyDataSetChanged();
            ((CategorywiseProductlistActivity) context).loadingpageflag = true;
            ((CategorywiseProductlistActivity) context).filterdata = {\filter\:{ } };
            constantsVariables.category_wise_product_paging=1;
            ((CategorywiseProductlistActivity) context).makeCategorycurrentidtochip(subCategories.get(position).getId());
            if (subCategories.get(position).getName().matches(All Items)) {
                ((CategorywiseProductlistActivity) context).titleallproducts.setText(All in  + ((CategorywiseProductlistActivity) context).headtitle);
            } else {
                ((CategorywiseProductlistActivity) context).titleallproducts.setText(All in  + subCategories.get(position).getName());
            }
            ((CategorywiseProductlistActivity) context).Categorycurrentid =  + subCategories.get(position).getId();
            ((CategorywiseProductlistActivity) context).displayproducts(subCategories.get(position).getId(), {\filter\:{ } });
        });
Publicado 08/11/2018 em 06:49
fonte usuário
Em outras línguas...                            

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more