公共属性


SwipeConsumer作为所有consumer的基类,一些公共的设置属性将放在这个基类中进行设置及使用

1. 侧滑方向的启用与锁定

默认情况下,consumer未启用任何方向,必须至少启用一个方向consumer才会开始工作

默认情况下,consumer未锁定任何方向,被锁定的方向即使enable为true也不可被手势事件触发侧滑(用户无法拖动),但可通过代码执行侧滑事件。

变量名称 类型 取值范围 默认值 set方法 get方法 备注
mEnableDirection int 0~15 0 enableDirection(dir)
enableLeft()
enableRight()
enableTop()
enableBottom()
enableHorizontal()
enableVertical()
enableAllDirections()

disableDirection(dir)
disableLeft()
disableRight()
disableTop()
disableBottom()
disableHorizontal()
disableVertical()
disableAllDirections()
isDirectionEnable(dir)
isLeftEnable()
isRightEnable()
isTopEnable()
isBottomEnable()
isHorizontalEnable()
isVerticalEnable()
isAllDirectionsEnable()
表示可侧滑的方向
若disable的方向包含当前侧滑的方向,则会自动close重置。
参考:侧滑方向
mLockDirection int 0~15 0 lockDirection(dir)
lockLeft()
lockRight()
lockTop()
lockBottom()
lockHorizontal()
lockVertical()
lockAllDirections()

unlockDirection(dir)
unlockLeft()
unlockRight()
unlockTop()
unlockBottom()
unlockHorizontal()
unlockVertical()
unlockAllDirections()
isDirectionLocked(dir)
isLeftLocked()
isRightLocked()
isTopLocked()
isBottomLocked()
isHorizontalLocked()
isVerticalLocked()
isAllDirectionsLocked()
表示锁定的方向
被锁定的方向即使enable为true也不可被手势事件触发侧滑,但可通过代码执行侧滑事件。
参考:侧滑方向

1.1.0版本新增:

支持设置指定方向是否启用嵌套滑动及飞行(惯性滑动),需配合smart-swipe-supportsmart-swipe-x 1.1.0及以上版本使用

set方法 get方法 备注
enableNestedScrollLeft(enable)
enableNestedScrollRight(enable)
enableNestedScrollTop(enable)
enableNestedScrollBottom(enable)
enableNestedScrollHorizontal(enable)
enableNestedScrollVertical(enable)
enableNestedScrollAllDirections(enable)
enableNestedScroll(enable)
isNestedScrollEnable(direction) 启用/禁用嵌套滑动
(默认所有方向全部启用)
enableNestedFlyLeft(enable)
enableNestedFlyRight(enable)
enableNestedFlyTop(enable)
enableNestedFlyBottom(enable)
enableNestedFlyHorizontal(enable)
enableNestedFlyVertical(enable)
enableNestedFlyAllDirections(enable)
enableNestedFly(enable)
isNestedFlyEnable(direction) 启用/禁用嵌套飞行(惯性滑动)
(默认所有方向全部启用)

2. 宽高

宽高属性指的是SmartSwipeWrapper的宽高尺寸

其初始值均为0,在onMeasure方法中分别被赋值为mWrapper.getMeasuredWidth()mWrapper.getMeasuredHeight()

Tips:

onMeasure方法被调用前,通过consumer.setLeftOpen()consumer.smoothTopOpen()等方法让SmartSwipe自动执行侧滑将不能生效。

如果SmartSwipeWrapper的宽高尺寸是确定值,可以提前为consumer设置宽高,从而实现在onMeasure方法被调用前执行自动侧滑的功能。demo中的封面演示了这种用法。

getter/setter均一一对应,不赘述

变量名称 类型 取值范围 默认值 备注
mWidth int >=0 0 SmartSwipeWrapper的宽度
mHeight int >=0 0 SmartSwipeWrapper的高度

3. 位移相关属性

getter/setter均一一对应,不赘述

变量名称 类型 取值范围 默认值 备注
mOpenDistance int >=0 20dp 从关闭状态到打开状态需要移动的像素值
mOverSwipeFactor float >=0F 0F 可以越界拖动的系数,越界的最大像素值为:
mOpenDistance x mOverSwipeFactor
可拖动的最大像素值为:
mOpenDistance x (1 + mOverSwipeFactor)
mSwipeDistanceCalculator SwipeDistanceCalculator - null 侧滑距离计算器,对拖动的距离进行加工后返回UI需要呈现的距离,用以实现与手势拖动不同步的效果,如阻力效果
mEdgeSize int >=0 0 在控件边缘处一定范围内才能触发
若为0,表示在整个控件区域都可触发
mSensitivity float >0 1F 灵敏度,数值越大越灵敏

4. 几个开关

getter/setter都一一对应,不赘述

变量名称 类型 取值范围 默认值 备注
mDisableSwipeOnSettling boolean true/false false true表示在自动滑动过程中禁用手指触发侧滑
mDisableNestedScroll boolean true/false false true表示禁用手势拖动的NestedScroll触发侧滑
mDisableNestedFly boolean true/false false true表示禁用惯性滑动时的NestedScroll触发侧滑

5. 其它属性

getter/setter都一一对应,不赘述

变量名称 类型 取值范围 默认值 备注
mMaxSettleDuration int 0~♾ 600 单位:ms
手指释放后的动画最大持续时长
mInterpolator Interpolator - SwipeHelper.sInterpolator 非手势事件拖动时动画侧滑的插值器
mReleaseMode int 0~7 1 释放模式决定了在用户拖动触发侧滑后抬起手指时的处理策略
参考:Release处理方式
mTag Object 所有值 null 如果有需要,可以为consumer设置一个标签

6. 可以获取但不能设置的属性

变量名称 类型 获取方式 取值范围 备注
mWrapper SmartSwipeWrapper getWrapper() - 当前consumer所添加到的wrapper
mSwipeHelper SwipeHelper getSwipeHelper() - 为当前consumer捕获触发侧滑的touch事件管理工具
- int getDragState() SwipeHelper.STATE_IDLE
SwipeHelper.STATE_DRAGGING
SwipeHelper.STATE_SETTLING
SwipeHelper.STATE_NONE_TOUCH
获取当前consumer的侧滑状态
mProgress float getProgress() 0 ~ 1 + mOverSwipeFactor 当前侧滑的进度,0为关闭状态,1为打开状态
mDirection int getDirection() 0/1/2/4/8 当前侧滑的方向,只会是:无、左、右、上、下这5个值中的一种
mSwiping boolean isSwiping() true/false 当前状态是否为:正在侧滑

7. 子类中可以使用的属性(不要修改)

变量名称 类型 备注
mSwipeOpenDistance int 从关闭状态到打开状态需要真实拖动的像素值(此值是经过mSwipeDistanceCalculator计算后的mOpenDistance)
mSwipeMaxDistance int 最大拖动距离像素值,mSwipeMaxDistance = mSwipeOpenDistance * (1 + mOverSwipeFactor)
mOpenDistanceSpecified boolean true代表mOpenDistance是通过setOpenDistance(distance)手动设置的
子类可以用此值来判断是否需要设置默认值
mCurDisplayDistanceX int 当前UI需要呈现出X轴方向上移动的像素值(经过mSwipeDistanceCalculator计算后的值)
mCurDisplayDistanceY int 当前UI需要呈现出Y轴方向上移动的像素值(经过mSwipeDistanceCalculator计算后的值)
Copyright © qibilly.com 2019 all right reserved,powered by Gitbook最后修改时间: 2019-12-05 16:13:43

results matching ""

    No results matching ""