Recyclerview scrolltoposition在onActivityResult中不起作用

时间:2019-02-06 08:51:35

标签: android android-recyclerview firebaseui

我知道有很多帖子和问题正在讨论并解决此问题。

但是我已经尝试了所有摆在我面前的解决方案,但是这些解决方案中没有一个解决了我的问题。

所以请原谅我:)

我使用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 :(得分:0)

解决方案是通过添加

  1. holder.setIsRecyclable(false);

在onBindViewHolder中

这解决了所有问题

感谢您的帮助