4

我知道如何以编程方式将 recyclerview 滚动到特定位置。但我的问题是我有一个带有垂直linearLayout 的recyclerview,它的每一行都有另一个子recyclerview gridlayout。现在,当我以编程方式滚动父 recyclerview 时,它不会滚动到给定位置。但是,如果从中删除子 recyclerview,那么它会毫无问题地滚动。这是我已经尝试过的,并且一切都适用于在其行中没有子 recyclerview 的单个 recyclerview。

card_recyclerView.getLayoutManager().scrollToPosition(position)
card_recyclerView.smoothScrollToPosition(position);
card_recyclerView.getLayoutManager().scrollToPositionWithOffset(position, 20);

我的主要回收站视图

<androidx.recyclerview.widget.RecyclerView
                            android:id="@+id/card_recyclerView"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:layout_marginRight="5dp"
                            android:clipToPadding="false"
                            android:layout_marginLeft="5dp"
                            android:background="#ffffff"
                            android:layout_weight="1"
                            />

主要 recyclerview 行项目

                            <androidx.recyclerview.widget.RecyclerView
                            android:id="@+id/cards_recycler_adapter"
                            android:layout_width="match_parent"
                            android:layout_height="wrap_content"
                            android:layout_below="@+id/layout_see_more_top"/>
4

1 回答 1

1

我刚刚创建了您的视图,没有任何问题。我设法只滚动

card_recyclerView.getLayoutManager().scrollToPosition(position)
card_recyclerView.smoothScrollToPosition(position);

这是我的第一个适配器的视图持有者的代码:

public class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {

    ViewHolder(View itemView) {
        super(itemView);
        RecyclerView recyclerView = itemView.findViewById(R.id.recyclerView2);
        recyclerView.setAdapter(new TestAdapter2(itemView.getContext(), mData));
        GridLayoutManager linearLayoutManager = new GridLayoutManager(itemView.getContext(), 3);
        recyclerView.setLayoutManager(linearLayoutManager);
    }
}

如果您仍然有问题,请提供适配器的代码,也许还提供行的 xml。

于 2019-10-24T18:34:44.983 回答