当前位置: 首页 > 知识库问答 >
问题:

如何找到滚动[重复]时显示在RecyclerView顶部的项目

郑燕七
2023-03-14

我一直在寻找一个适当的API来做我需要做的事情,我几乎可以肯定的是,必须有一个API。但我找不到。

private ArrayList<Transaction> filteredTransactions = new ArrayList<>();
...            

recyclerView = view.findViewById(R.id.feed_recycle_view);
        recyclerView.setHasFixedSize(true);
        LinearLayoutManager linearLayoutManager = new LinearLayoutManager((getActivity()));
        adapter = new FeedAdapter(filteredTransactions);
        recyclerView.setLayoutManager(linearLayoutManager);
        recyclerView.setAdapter(adapter);
recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
        @Override
        public void onScrolled(@NonNull RecyclerView recyclerView, int dx, int dy) {
            super.onScrolled(recyclerView, dx, dy);
}

提前致谢

共有1个答案

阚砚文
2023-03-14

findFirstCompletelyVisibleItemPosition()将返回第一个完全可见视图的适配器位置。

你可以这样做:

recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
            @Override
            public void onScrolled(@NonNull RecyclerView recyclerView, int dx, int dy) {
                super.onScrolled(recyclerView, dx, dy);

                int itemPoition = ((LinearLayoutManager) recyclerView.getLayoutManager()).findFirstCompletelyVisibleItemPosition();

                // Get the item from the list
                mList.get(itemPoition)

            }
 类似资料:
  • 问题内容: 这是我的onCreate,它处理适配器,LinearLayoutManager等。我尝试了每个选项以尝试将其滚动到顶部,但不能。我什至尝试创建自己的自定义LinearLayoutManager。 问题答案: 您尝试过还是? RecyclerView不会在其中实现任何滚动逻辑,而是更加具体,它会根据实现的布局转到特定的索引,在您的情况下是线性的。

  • 我试过使用descendantFocusability=“blocksdescendents”,但这不起作用。 这是我的XML代码,可以在其中找到RecyclerView 用于向RecyclersView添加数据的代码是 所有应用程序都工作得很好,唯一的问题是滚动行为。当我在HIM中添加新数据时,我希望滚动位置不会出现在RecyclersView列表的顶部。

  • 我正在做一个西班牙新闻应用程序,看这里: 这个应用程序的问题是,每当任何用户点击like、play audio或translate按钮时,recyclerView就会跳到顶部。 > 数据以片段形式从Firebase实时数据库中获取。请帮帮忙。 @override public View onCreateView(LayoutInfluater Influater,ViewGroup contain

  • 我正在寻找一种滚动以在顶部显示选定项的方法。 RecycerView不支持滚动到绝对位置 如何滚动以将选定项放在视图的顶部?

  • 我是Python新手。我想在下图中显示每个箱上方的值: 这是我的代码: 这是我想要的图表:

  • 我有一个非常标准的,带有垂直。我一直在顶部插入新项目,并调用 < 我希望列表保持滚动到顶部;总是显示第0个位置。 从我的需求的角度来看,< code>LayoutManager根据项目的数量表现不同。 虽然所有项目都适合屏幕,但它的外观和行为与我预期的一样:新项目总是出现在顶部,并移动其下的所有项目。 但是,一旦项目数超过RecyclerView的界限,新项目就会添加到当前可见项目的上方,但可见项