Recyclerview scrolltoposition не работает в onActivityResult - PullRequest
0 голосов
/ 06 февраля 2019

Я знаю, что есть много постов и вопросов, которые говорят об этом и решают эту проблему.

, но я перепробовал все решения, которые были передо мной, и ни одно из этих решений не было исправленомоя проблема.

Так что прости меня:)

У меня есть recyclerView во фрагменте, используя FirebaseUi adapter

У него есть список вопросов, которые я хочу, когда человекнажимает на вопрос и возвращается обратно, recyclerView прокручивает вниз к вопросу.Поэтому я отправил позицию по назначению и получил ее в onActivityResult, но она не работает.

Я использовал Handler и использовал Timedowncounter для ожидания 5 секунд и использовал

mLayoutManager.smoothScrollToPosition(mRecyclerView,null,position);

и использовал

mRecyclerView.smoothScrollToPosition(position);

и использовал

scrollToPosition

и даже использовал

View recyclerView = findViewById(R.id.myView);
recyclerView.getViewTreeObserver()
                .addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
                    @Override
                    public void onGlobalLayout() {
                        //At this point the layout is complete and the
                        //dimensions of recyclerView and any child views are known.
                        //Remove listener after changed RecyclerView's height to prevent infinite loop
                        recyclerView.getViewTreeObserver().removeOnGlobalLayoutListener(this);
                    }
                });

и еще и еще и ничего не произошло

Так в чем же решение?

Спасибо тебе:)

мой OnActivityResult код

  @Override
  public void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if (requestCode == Constants.TOPIC_INTENT_REQUEST)
    {
      int position = data.getExtras().getInt(Constants.POST_POSITION);
      new Handler().postDelayed(() -> mLayoutManager.scrollToPositionWithOffset(position,30), 6000);
    }
  }
}

1 Ответ

0 голосов
/ 06 февраля 2019

решение было, добавив

  1. holder.setIsRecyclable(false);

в onBindViewHolder

это исправило все

спасибо вам за помощь

...