鸿蒙如何在用户开始滑动页面时找到PageSlider的滑动方向?

问题描述

我正在使用 Java SDK 在 HarmonyOS 中编写一个自定义组件,它是一个自定义页面滑块指示器。为此,我添加一个 PageChangedListener,它提供了三种覆盖方法

public class CustomPageSliderIndicator extends Component implements PageSlider.PageChangedListener{

@Override
public void onPageSliding(int position,float positionOffset,int positionOffsetPixels) {}

@Override
public void onPageChosen(int i) {}

@Override
public void onPageSlideStateChanged(int i) { }
}

每当用户滑动页面时,都会调用 onPageSliding,这里我面临的问题是,左右滑动的 positionpositionOffset 是相同的。

那么,如何知道滑动的方向?

解决方法

onPageSliding 会在用户滑动页面时被调用,与 PageSliderIndicator 关系不大。

position 中的 positionOffsetpageslider 的值是相同的。这个回调参数目前是这样设计的。

void onPageSliding(int itemPos,float itemPosOffset,int itemPosOffsetPixels)

如果该参数设置为左右滑动,则第三个参数itemPosOffsetPixels表示方向。向右滑动为正,向左滑动为负。