Android scrollTo在复杂的视图层次结构中不起作用

时间:2017-04-28 01:39:09

标签: android android-recyclerview scrollto

我有以下视图层次结构:

CoordinatorLayout
<include statement (other file begins here)>
RelativeLayout
NestedScrollView
RelativeLayout
<include view above recyclerview that mimics a recycler card item>
<include view above recyclerview that mimics a second recycler card item>
RecyclerView

现在,我需要滚动到RecyclerView适配器数据集的特定索引,但以下代码都不起作用:

    recycler.post(new Runnable()
    {
        @Override
        public void run()
        {
             //scrollView.smoothScrollTo(0, ((int) recycler.getChildAt(pos).getY()));
             //recycler.scrollToPosition(pos);
             linearLayoutManager.scrollToPosition(pos);
        }
    });//, 250);

我认为可能与在scrollview中嵌套Recyclerview有关,但我真的不知道。有一个nestedscrollview的原因是因为我的recyclerview之前的两个include语句实际上是控制recyclerview数据集的cardviews。用户可以随时隐藏这两张卡片,并且有一个淡入淡出的动画可以将recyclerview带到卡片所在的位置。如果这看起来很复杂,那就是,我认为包括这些&#34;控制卡&#34;正如我现在所说的那样,如果我将它们作为不同的视图类型包含在回收器中而不是将它们独立放置在回收器上方,我认为它们效率较低,难以制作动画且难以使用。

1 个答案:

答案 0 :(得分:0)

尝试像这样打电话

yourRecyclerView.post(new Runnable() {
            @Override
            public void run() {
               linearLayoutManager.scrollToPosition(pos);    
            }
        });