【发布时间】:2018-12-18 07:36:15
【问题描述】:
我正在使用RecyclerView 来显示来自 Firestore 数据库的一些数据。我将FirestoreRecyclerAdapter用作适配器,原因很明显。我在RecyclerView 中成功显示了所有 35 个项目。问题是,我无法滚动到特定位置。这是我尝试过的:
recyclerView = locationsFragmentView.findViewById(R.id.recycler_view);
recyclerView.setLayoutManager(new LinearLayoutManager(context));
FirestoreRecyclerOptions<MyModelClass> options = new FirestoreRecyclerOptions.Builder<MyModelClass>().setQuery(query, MyModelClass.class).build();
adapter = new MyFirestoreRecyclerAdapter(options);
recyclerView.setAdapter(adapter);
recyclerView.setHasFixedSize(false);
recyclerView.getLayoutManager().scrollToPosition(10);
每次打开我的应用程序时,我总是位于第一个位置,而不是我在 scrollToPosition() 方法中指定的第 10 位。
我也用过:
recyclerView.scrollToPosition(10);
和
recyclerView.smoothScrollToPosition(10);
但没有运气。如何滚动到特定位置?谢谢!
【问题讨论】:
-
它不会滚动,因为当您调用
recyclerView.scrollToPosition(10);时recyclerView中仍然没有任何项目,您应该在recyclerView从Firebase填充之后使用该代码,可能在回调中 -
@Signo 是我目前在网上看到的最合理的解释。谢谢你,但我应该将这些代码行移到我的适配器类中还是?
标签: android firebase android-recyclerview uiscrollview google-cloud-firestore