我用Java SDK在HarmonyOS中编写了一个自定义组件,它是一个自定义页面滑块指示器。为此,我添加了一个PageChangedListener
,它提供了三个重写方法。
java prettyprint-override">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
,这里我面临的问题是,position
和positionoffset
对于左右滑动是相同的。
那么,如何知道滑动的方向呢?
引入一个实例变量(currentPosition)来跟踪当前页面。
private int currentPosition;
...
pageSlider.addPageChangedListener(new PageSlider.PageChangedListener() {
@Override
public void onPageSliding(int itemPos, float itemPosOffset, int itemPosOffsetPixels) {
}
@Override
public void onPageSlideStateChanged(int state) {
}
@Override
public void onPageChosen(int position) {
if(currentPosition < position) {
// handle swipe LEFT
} else if(currentPosition > position){
// handle swipe RIGHT
}
currentPosition = position; // Update current position
}
});
问题内容: 这两种方法以及的两种方法都不会告诉您滑动的方向。 该方法的的委托不帮助我们,所以尽管。它只是告诉页面是否被完全刷了。 那么我应该使用哪种方法来准确地检测用户方向(左或右)? 这两个属性可能会有所帮助: 我的代码如下所示: 根据pbasdf所说, 问题答案: 您应该同时使用和委托方法来确定转换是向前还是向后。在课程开始时声明几个索引变量,例如和(均为)。 在该方法中,将等于挂起的视图控制
我试图使用touch action类使用swipe查找元素,但Appium服务器抛出一个错误,即命令有问题。我试图使用touch action类使用坐标从一个位置移动到另一个位置。我的代码如下所示: 服务器正在抛出此错误,如下所示: 服务器没有响应错误
HarmonyOS Swiper组件如何实现手指拖动滑动效果而不是自动滑动效果?
我想在查看页面2中禁用从右向左滑动。我基本上有一个viewpager2元素,在导航抽屉中有两页。我希望我的第二页仅在单击第一页中的某个元素时显示(从第一页向右向左滑动不应打开第二页),而当我在第二页时,viewpager2滑动(从左向右滑动)应像在viewpager中一样滑动。 我尝试过扩展类并覆盖触摸事件,但不幸的是它是最终类,因此我无法扩展它。 其次,我尝试使用将userinputened设置
1.4.0 新增 滑动开关,用于切换 on/off 状态。 示例 基本用法 <cube-switch v-model="value"> Switch </cube-switch> export default { data() { return { value: true } } } value值true对应着 on 状态(开) ,value值false
在适配器中 我试过了所有的方法,但是很难从RecolyerView中滑动项目,并且当snackbar的undo被按下时,我希望该项目重新出现。我希望从RecolyerView中滑动项目,并且当项目被滑动时,底部的项目应该向上移动。