WearableListView 标题

问题描述 投票:0回答:2

我正在尝试创建一个类似于默认设置应用程序中的

WearableListView
。我有一个
WearableListView
可以滚动,并对每个元素进行动画处理。我现在需要的只是列表顶部的标题,当列表滚动时该标题会向上滚动。这与“设置”应用程序中的“设置”标题具有相同的行为。

我发现执行此操作的唯一方法,此处使用:如何设置 topEmptyRegion 的布局,实现了

WearableListView.OnScrollListener()
。然后使用
onAbsoluteScrollChange()
方法设置用作标题的
TextView
的位移。但是,根据 Android 开发人员参考,此方法已被弃用。文档甚至指出:建议不要使用这个当 RecyclerView 的内容发生变化时,这可能会提供错误的值

我想知道是否有其他人找到了一种方法来实现具有这种行为的标头,并且该标头未被弃用。可能是我在 Android Wear 文档中遗漏了一些东西?

编辑:

无论如何我都尝试实现这个方法。事实证明,

WearableListView.setOnScrollListener()
不会需要
new WearableListView.OnScrollListener()
。相反,它要求其父级
RecyclerView.OnScrollListener
,而它没有
onAbsoluteScrollChange()
方法。它确实有一个
onScrolled()
方法,我尝试实现它。事实证明,这完全覆盖了
WearableListView
的默认滚动侦听器,并使居中的项目可以偏离中心。绝对不是我想要的效果。

android scroll android-recyclerview wear-os
2个回答
4
投票

由于 onScroll() 未被弃用,您可以通过在侦听器中实现它来完成相同的任务:

@Override
public void onScroll(int scroll) {
    header.setY(header.getY() - scroll);
}

其中

header
是标题组件。

编辑:确保使用

WearableListView.addOnScrollListener
WearableListView.setOnScrollListener()


0
投票
wearablerecyclerview.addOnScrollListener(new RecyclerView.OnScrollListener() {
        @Override
        public void onScrolled(@NonNull RecyclerView recyclerView, int dx, int dy) {
            super.onScrolled(recyclerView, dx, dy);
                header.setY(binding.time.getY() - dy);
            }
    });

刚刚尝试了与上面在可穿戴回收器视图上接受的答案相同的方法 - 效果完美!

© www.soinside.com 2019 - 2024. All rights reserved.