使用文档
Android SwipeDrawer 滑动抽屉库
  • 开始使用
  • 简单介绍
  • 如何使用
  • 使用文档
  • 布局属性
  • 获取属性
  • 设置属性
  • 回调接口
  • 调用方法
  • 全局方法

开始使用

简单介绍

Android SwipeDrawer滑动抽屉库,可同时添加上下左右四个方向抽屉布局,抽屉打开模式有抽屉模式、覆盖模式、固定模式三种,支持无限嵌套,支持边缘滑动打开等,SwipeDrawer还可以当做下拉刷新布局使用,支持ListView、RecyclerView、GridView、ScrollView等。



如何使用

添加仓库地址:

allprojects {
    repositories {
        ...
        maven { url "https://jitpack.io" }
    }
}

添加依赖:

dependencies {
    ...
    implementation 'cn.Leaqi:SwipeDrawer:1.6'
}

在布局文件中加入

<cn.leaqi.drawer.SwipeDrawer
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    app:leftLayout="@+id/leftDrawer">

    <!-- leftLayout属性指定Left布局 -->
    <LinearLayout
        android:id="@+id/leftDrawer"
        android:layout_width="200dp"
        android:layout_height="match_parent"
        android:background="#FF5722">
        <TextView
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:gravity="center"
            android:text="Left" />
    </LinearLayout>

    <!-- 默认第一个未指定ID的布局为主布局 -->
    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent">
        <TextView
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:gravity="center"
            android:text="Main" />
    </RelativeLayout>
</cn.leaqi.drawer.SwipeDrawer>


使用文档

布局属性

属性名称 说明 类型 默认值
mode

打开模式:

:抽屉模式

:覆盖模式

:固定模式

enum drawer
open

初始化状态:

:打开Left

:打开Top

:打开Right

:打开Bottom

enum -
mask

背景遮罩:

:不开启

:固定遮罩颜色

:遮罩逐渐深浅

enum none
mainLayout 指定主布局ID reference 默认为第一个未指定ID的布局
leftLayout 指定Left布局ID reference -
topLayout 指定Top布局ID reference -
rightLayout 指定Right布局ID reference -
bottomLayout 指定Bottom布局ID reference -
mainType

主布局类型:

:非滑动布局

:垂直滑动布局

:水平滑动布局

enum view
leftType

Left布局类型:

:非滑动布局

:垂直滑动布局

:水平滑动布局

enum view
topType

Top布局类型:

:非滑动布局

:垂直滑动布局

:水平滑动布局

enum view
rightType

Right布局类型:

:非滑动布局

:垂直滑动布局

:水平滑动布局

enum view
bottomType

Bottom布局类型:

:非滑动布局

:垂直滑动布局

:水平滑动布局

enum view
leftMode

指定Left打开模式:

:抽屉模式

:覆盖模式

:固定模式

enum drawer
topMode

指定Top打开模式:

:抽屉模式

:覆盖模式

:固定模式

enum drawer
rightMode

指定Right打开模式:

:抽屉模式

:覆盖模式

:固定模式

enum drawer
bottomMode

指定Bottom打开模式:

:抽屉模式

:覆盖模式

:固定模式

enum drawer
mainOpen

打开后主布局触摸事件:

:不屏蔽

:只允许点击

:禁止所有触摸事件

enum none
parentDrawer 指定SwipeDrawer父布局ID,嵌套时使用 reference -
mainScroll 指定主布局下滑动布局ID reference -
leftScroll 指定Left主布局下滑动布局ID reference -
topScroll 指定Top主布局下滑动布局ID reference -
rightScroll 指定Right主布局下滑动布局ID reference -
bottomScroll 指定Bottom布局下滑动布局ID reference -
leftDragOpen Left布局拖拽打开 boolean true
topDragOpen Top布局拖拽打开 boolean true
rightDragOpen Right布局拖拽打开 boolean true
bottomDragOpen Bottom布局拖拽打开 boolean true
showLayout 非当前操作的布局是否隐藏 boolean false
autoClose 打开后是否关闭其他SwipeDrawer boolean false
maskClose 点击遮罩后关闭 boolean false
maskColor 遮罩颜色 color #80000000
dragClose 允许拖拽关闭 boolean true
dragCloseType

拖拽关闭类型:

:全布局

:主布局

:抽屉布局

注:最低版本需 >= 1.4
enum all
scrollOuterDrag 滑动布局之外是否允许拖拽关闭 boolean false
autoLayout 尺寸发生变化是否自动更新注:最低版本需 >= 1.2 boolean true
shrinkRange 拖拽距离:
默认值为:,拖动方向高/宽度的5分之1
:可以拖拽,但不会开启或关闭
float 5
dragDamping 拖拽阻力:0-9
:无阻力注:版本 >= 1.5 时值范围在0-99,值越大速度越快
int 10
dragRange 边缘拖拽
布局方向的最边缘dip才允许拖拽
:全布局拖拽
dip 0
leftDragRange Left边缘拖拽
Left布局方向的最边缘dip才允许拖拽
:全布局拖拽注:最低版本需 >= 1.5
dip 0
topDragRange Top边缘拖拽
Top布局方向的最边缘dip才允许拖拽
:全布局拖拽注:最低版本需 >= 1.5
dip 0
rightDragRange Right边缘拖拽
Right布局方向的最边缘dip才允许拖拽
:全布局拖拽注:最低版本需 >= 1.5
dip 0
bottomDragRange Bottom边缘拖拽
Bottom布局方向的最边缘dip才允许拖拽
:全布局拖拽注:最低版本需 >= 1.5
dip 0
leftOffset Left布局偏移
Left布局向外偏移dip注:最低版本需 >= 1.5
dip 0
topOffset Top布局偏移
Top布局向外偏移dip注:最低版本需 >= 1.5
dip 0
rightOffset Right布局偏移
Right布局向外偏移dip注:最低版本需 >= 1.5
dip 0
bottomOffset Bottom布局偏移
Bottom布局向外偏移dip注:最低版本需 >= 1.5
dip 0
dragSlop 拖拽拦截距离
当拖拽距离大于时才拦截事件注:最低版本需 >= 1.1
dip 5px
turnCancel 回拽取消操作
当拖拽达到打开或关闭距离时,回拽距离大于时释放后会取消操作注:最低版本需 >= 1.6
dip 10px
maxDragSize 最大拖拽高/宽度
:布局高/宽度
dip 0
duration 动画速度 int 200
interpolator 动画插值器 reference AccelerateDecelerateInterpolator


获取属性

方法名称 说明 返回
getShow()

获取是否打开

boolean
getIntercept()

获取是否拦截事件,及正在拖拽

boolean
getArriveRange()

获取拖拽是否超过打开/关闭的距离

boolean
getDirection()

获取操作的方向:

:未操作

:Left布局

:Top布局

:Right布局

:Bottom布局

int
getMaskView()

获取遮罩View,未设置为

view
getMainView()

获取主布局View,未设置为

view
getLeftView()

获取Left布局View,未设置为

view
getTopView()

获取Top布局View,未设置为

view
getRightView()

获取Right布局View,未设置为

view
getBottomView()

获取Bottom布局View,未设置为

view
getMode()

获取属性:

:抽屉模式

:覆盖模式

:固定模式

int
getLeftMode()

获取属性:

:抽屉模式

:覆盖模式

:固定模式

int
getTopMode()

获取属性:

:抽屉模式

:覆盖模式

:固定模式

int
getRightMode()

获取属性:

:抽屉模式

:覆盖模式

:固定模式

int
getBottomMode()

获取属性:

:抽屉模式

:覆盖模式

:固定模式

int
getMask()

获取属性:

:不开启

:固定遮罩颜色

:遮罩逐渐深浅

int
getMainType()

获取属性:

:非滑动布局

:垂直滑动布局

:水平滑动布局

int
getLeftType()

获取属性:

:非滑动布局

:垂直滑动布局

:水平滑动布局

int
getTopType()

获取属性:

:非滑动布局

:垂直滑动布局

:水平滑动布局

int
getRightType()

获取属性:

:非滑动布局

:垂直滑动布局

:水平滑动布局

int
getBottomType()

获取属性:

:非滑动布局

:垂直滑动布局

:水平滑动布局

int
getMainOpen()

获取属性:

:不屏蔽

:只允许点击

:禁止所有触摸事件

int
getShrinkRange()

获取属性

float
getDragDamping()

获取属性

int
getDragRange()

获取属性

int
getLeftDragRange()

获取属性注:最低版本需 >= 1.5

int
getTopDragRange()

获取属性注:最低版本需 >= 1.5

int
getRightDragRange()

获取属性注:最低版本需 >= 1.5

int
getBottomDragRange()

获取属性注:最低版本需 >= 1.5

int
getLeftOffset()

获取属性注:最低版本需 >= 1.5

int
getTopOffset()

获取属性注:最低版本需 >= 1.5

int
getRightOffset()

获取属性注:最低版本需 >= 1.5

int
getBottomOffset()

获取属性注:最低版本需 >= 1.5

int
getDragSlop()

获取属性注:最低版本需 >= 1.1

int
getTurnCancel()

获取属性注:最低版本需 >= 1.6

int
getMaxDragSize()

获取属性

int
getDuration()

获取属性

int
getLeftDragOpen()

获取属性

boolean
getTopDragOpen()

获取属性

boolean
getRightDragOpen()

获取属性

boolean
getBottomDragOpen()

获取属性

boolean
getShowLayout()

获取属性

boolean
getAutoClose()

获取属性

boolean
getMaskClose()

获取属性

boolean
getMaskColor()

获取属性

int
getScrollOuterDrag()

获取属性

boolean
getAutoLayout()

获取属性注:最低版本需 >= 1.4

boolean


设置属性

方法名称 说明 参数
setMainScale(float scale)

设置主布局缩放

scale:

setMainRotation(float rotation)

设置主布局旋转

rotation:

setIntercept(boolean intercept)

设置手动拦截所有方向触摸事件

intercept:

setIntercept(View view, boolean intercept)

设置手动拦截指定方向触摸事件

view:

intercept:

setIntercept(int type, boolean intercept)

设置手动拦截指定方向触摸事件

type:

:Left方向

:Top方向

:Right方向

:Bottom方向

intercept:

setMode(int type)

设置属性
必须在关闭的情况下设置才有效

type:

:抽屉模式

:覆盖模式

:固定模式

setLeftMode(int type)

设置属性
必须在关闭的情况下设置才有效

type:

:抽屉模式

:覆盖模式

:固定模式

setRightMode(int type)

设置属性
必须在关闭的情况下设置才有效

type:

:抽屉模式

:覆盖模式

:固定模式

setTopMode(int type)

设置属性
必须在关闭的情况下设置才有效

type:

:抽屉模式

:覆盖模式

:固定模式

setBottomMode(int type)

设置属性
必须在关闭的情况下设置才有效

type:

:抽屉模式

:覆盖模式

:固定模式

setMask(int type)

设置属性

type:

:不开启

:固定遮罩颜色

:遮罩逐渐深浅

setMainType(int type)

设置属性

type:

:非滑动布局

:垂直滑动布局

:水平滑动布局

setLeftType(int type)

设置属性

type:

:非滑动布局

:垂直滑动布局

:水平滑动布局

setTopType(int type)

设置属性

type:

:非滑动布局

:垂直滑动布局

:水平滑动布局

setRightType(int type)

设置属性

type:

:非滑动布局

:垂直滑动布局

:水平滑动布局

setBottomType(int type)

设置属性

type:

:非滑动布局

:垂直滑动布局

:水平滑动布局

setMainOpen(int type)

设置属性

type:

:不屏蔽

:只允许点击

:禁止所有触摸事件

setMainLayout(int id)

设置属性

id:

setMainLayout(View view)

设置属性

view:

setLeftLayout(int id)

设置属性

id:

setLeftLayout(View view)

设置属性

view:

setTopLayout(int id)

设置属性

id:

setTopLayout(View view)

设置属性

view:

setRightLayout(int id)

设置属性

id:

setRightLayout(View view)

设置属性

view:

setBottomLayout(int id)

设置属性

id:

setBottomLayout(View view)

设置属性

view:

setMainScroll(int id)

设置属性

id:

setMainScroll(View view)

设置属性

view:

setLeftScroll(int id)

设置属性

id:

setLeftScroll(View view)

设置属性

view:

setTopScroll(int id)

设置属性

id:

setTopScroll(View view)

设置属性

view:

setRightScroll(int id)

设置属性

id:

setRightScroll(View view)

设置属性

view:

setBottomScroll(int id)

设置属性

id:

setBottomScroll(View view)

设置属性

view:

setParentDrawer(int id)

设置属性

id:

setParentDrawer(SwipeDrawer view)

设置属性

SwipeDrawer:

setShrinkRange(float num)

设置属性

num:
:可以拖拽,但不会开启或关闭

setDragDamping(int num)

设置属性

num:0-9
:无阻力注:版本 >= 1.5 时值范围在0-99,值越大速度越快

setDragRange(int num)

设置属性

num:px
:全布局拖拽

setLeftDragRange(int num)

设置属性注:最低版本需 >= 1.5

num:px
:全布局拖拽

setTopDragRange(int num)

设置属性注:最低版本需 >= 1.5

num:px
:全布局拖拽

setRightDragRange(int num)

设置属性注:最低版本需 >= 1.5

num:px
:全布局拖拽

setBottomDragRange(int num)

设置属性注:最低版本需 >= 1.5

num:px
:全布局拖拽

setLeftOffset(int num)

设置属性注:最低版本需 >= 1.5

num:px

setTopOffset(int num)

设置属性注:最低版本需 >= 1.5

num:px

setRightOffset(int num)

设置属性注:最低版本需 >= 1.5

num:px

setBottomOffset(int num)

设置属性注:最低版本需 >= 1.5

num:px

setDragSlop(int num)

设置属性注:最低版本需 >= 1.1

num:px

setTurnCancel(int num)

设置属性注:最低版本需 >= 1.6

num:px

setMaxDragSize(int num)

设置属性

num:px

setLeftDragOpen(boolean bool)

设置属性

bool:

setTopDragOpen(boolean bool)

设置属性

bool:

setRightDragOpen(boolean bool)

设置属性

bool:

setBottomDragOpen(boolean bool)

设置属性

bool:

setShowLayout(boolean bool)

设置属性

bool:

setAutoClose(boolean bool)

设置属性

bool:

setMaskClose(boolean bool)

设置属性

bool:

setMaskColor(int color)

设置属性

int:

setDragClose(boolean bool)

设置属性

bool:

setScrollOuterDrag(boolean bool)

设置属性

bool:

setAutoLayout(boolean bool)

设置属性注:最低版本需 >= 1.4

bool:

setDuration(int ms)

设置属性

ms:毫秒

setInterpolator(Interpolator interpolator)

设置属性

interpolator:插值器



回调接口

方法名称 说明 参数
setOnDrawerState(OnDrawerState listener)

监听开始、移动、开启、关闭、取消回调

listener:

setOnDrawerSwitch(OnDrawerSwitch listener)

监听开启、关闭回调

listener:

setOnDrawerChange(OnDrawerChange listener)

监听改变,由参数返回各种状态

listener:



调用方法

方法名称 说明 参数
openDrawer(int type)

打开指定方向

type:

:Left方向

:Top方向

:Right方向

:Bottom方向

openDrawer(int type, boolean anim)

打开指定方向、动画设置

type:

:Left方向

:Top方向

:Right方向

:Bottom方向

anim:是否开启动画

openDrawer(int type,
      boolean anim,
      boolean call)

打开指定方向、动画设置、回调设置

type:

:Left方向

:Top方向

:Right方向

:Bottom方向

anim:是否开启动画

call:是否回调接口

closeDrawer()

关闭

-
closeDrawer(boolean anim)

关闭、动画设置

anim:是否开启动画

closeDrawer(boolean anim, boolean call)

关闭、动画设置、回调设置

anim:是否开启动画

call:是否回调接口

closeDrawer(int type)

关闭指定方向

type:

:Left方向

:Top方向

:Right方向

:Bottom方向

closeDrawer(int type, boolean anim)

关闭指定方向、动画设置

type:

:Left方向

:Top方向

:Right方向

:Bottom方向

anim:是否开启动画

closeDrawer(int type,
      boolean anim,
      boolean call)

关闭指定方向、动画设置、回调设置

type:

:Left方向

:Top方向

:Right方向

:Bottom方向

anim:是否开启动画

call:是否回调接口

toggleDrawer(int type)

打开/关闭指定方向

type:

:Left方向

:Top方向

:Right方向

:Bottom方向

toggleDrawer(int type, boolean anim)

打开/关闭指定方向、动画设置

type:

:Left方向

:Top方向

:Right方向

:Bottom方向

anim:是否开启动画

toggleDrawer(int type,
      boolean anim,
      boolean call)

打开/关闭指定方向、动画设置、回调设置

type:

:Left方向

:Top方向

:Right方向

:Bottom方向

anim:是否开启动画

call:是否回调接口

setIntercept(boolean intercept)

屏蔽所有方向触摸事件

intercept:是否允许触摸

setIntercept(int type, boolean intercept)

屏蔽指定方向触摸事件

type:

:Left方向

:Top方向

:Right方向

:Bottom方向

intercept:是否允许触摸

setIntercept(View view, boolean intercept)

屏蔽指定方向触摸事件

view:指定方向

intercept:是否允许触摸

drawerLayout()

手动更新布局,需在关闭的情况下进行注:最低版本需 >= 1.2

-


全局方法

方法名称 说明 参数/返回
SwipeDrawer.setAllIntercept(boolean bool)

设置屏蔽所有触摸事件

bool:

SwipeDrawer.getAllIntercept()

获取触摸事件是否屏蔽

boolean

SwipeDrawer.getParentDrawer(View view)

获取view的父级

SwipeDrawer