三、内部类

interface SlidingDrawer.OnDrawerCloseListener

当drawer(抽屉)关闭时调用

interface SlidingDrawer.OnDrawerOpenListener

当drawer(抽屉)打开时调用

interface SlidingDrawer.OnDrawerScrollListener

当drawer(抽屉)滑动(滚动)时调用

四、XML属性

属性名称

描述

android:allowSingleTap

指示是否可通过单击handle打开或关闭(如果是false,刚用户必须通过拖动,滑动或者使用轨迹球,来打开/关闭抽屉。)默认的是true。

android:animateOnClick

指示当用户点击handle的时候,抽屉是否以动画的形式打开或关闭。默认的是true。

android:bottomOffset

Handle距离SlidingDrawer底部的额外距离

android:content

标识SlidingDrawer的内容

android:handle

标识SlidingDrawer的handle(译者注:如按钮)

android:orientation

SlidingDrawer的方向。必须是下面的一个值:

常量

描述

horizontal

0

水平方向对齐

vertical

1

竖直方向对齐

android:topOffset

Handle距离SlidingDrawer顶部的额外距离

五、常量

public static final int ORIENTATION_HORIZONTAL

(译者注:水平方向对齐)

常量值:0 (0×00000000)

public static final int ORIENTATION_VERTICAL

(译者注:垂直方向对齐)

常量值:1 (0×00000001)

六、构造函数

public SlidingDrawer (Context context, AttributeSet attrs)

用xml中设置的属性来创建一个新的SlidingDrawe

参数

context 上下文

attrs XML中定义的属性

public SlidingDrawer (Context context, AttributeSet attrs, int defStyle)

用xml中设置的属性来创建一个新的SlidingDrawe

参数

context 上下文

attrs XML中定义的属性

defStyle 要应用到这个组件上的样式

七、公共方法

public void animateClose ()

动画效果关闭抽屉。

参见

close()

open()

animateOpen()

animateToggle()

toggle()

public void animateOpen ()

动画效果打开抽屉。

参见

close()

open()

animateOpen()

animateToggle()

toggle()

public void animateToggle ()

在打开和关闭抽屉之间动画切换

参见

close()

open()

animateOpen()

animateToggle()

toggle()

public void close ()

立即关闭抽屉

参见

open()

toggle()

animateClose()

public View getContent ()

返回抽屉的内容(content)

返回值

返回在抽屉内容的视图,它在XML中是用“content”id 标识的

public View getHandle ()

返回抽屉的handle

返回值

返回在抽屉handle的视图,它在XML中是用“handle”id 标识的

public boolean isMoving ()

抽屉是否在滚动或滑动。

返回值

如果在滚动或滑动,返回true,否则返回false

public boolean isOpened ()

当前抽屉是否被完全打开

返回值

如果是打开的,返回true,否则返回false。

public void lock ()

锁定SlidingDrawer,忽略触摸事件

参见

unlock()

public boolean onInterceptTouchEvent (MotionEvent event)

实现这个方法可以拦截所有的触屏事件,它在事件被传到子类之前拦截,并获得当前手势的所有权。

使用这个方法时要注意,因为它与View.onTouchEvent(MotionEvent)有一个相当复杂的交互,使用它需要用正确的方法来实现。事件会按照下列顺序接受:

1. down事件会被首先传到本方法中。

2. 这个down事件会被当前viewgroup的onTouchEvent()方法或者其各个子视图处理,也就是说你应该实现onTouchEvent()方法并返回true,你会继续看到剩下事件的传递(而不是找一个parent view处理它)。同样的,从onTouchEvent()中返回true,你不会在onInterceptTouchEvent()中接受到任何接下来的事件,并且所有的事件都会被onTouchEvent()处理。

3. 如果当前方法返回false,所有接下来的事件(截止到最后包含注册的事件)首先都会被继续传到这里,然后一起传递给目标的onTouchEvent()方法。截至及包括最后注册。

4. 如果在这里返回true,将不会收到以下任何事件:目标view将收到同样的事件但是是伴随ACTION_CANCEL事件,并且所有的更进一步的事件将会传递到你自己的onTouchEvent()方法中而不会再在这里出现。

(译者著:这里实在是太麻烦了,很不好懂,我自己看着都头晕,在网上找到一篇很不错的总结,才知道是怎么回事,这里总结一下,记住这个原则你就会很清楚了:

1、onInterceptTouchEvent()是用于处理事件(类似于预处理,当然也可以不处理)并改变事件的传递方向,也就是决定是否允许Touch事件继续向下(子控件)传递,一但返回True(代表事件在当前的viewGroup中会被处理),则向下传递之路被截断(所有子控件将没有机会参与Touch事件),同时把事件传递给当前的控件的onTouchEvent()处理;如果返回false,则把事件交给子控件的onInterceptTouchEvent()处理

2、onTouchEvent()用于处理事件,返回值决定当前控件是否消费(consume)了这个事件,也就是说在当前控件在处理完Touch事件后,是否还允许Touch事件继续向上(父控件)传递,一但返回True,则父控件不用操心自己来处理Touch事件。

相关文章这里1、这里2)

参数

event 分层次的动作事件

返回值

如果将运动事件从子视图中截获并且通过onTouchEvent()发送到当前ViewGroup ,返回true。当前目标将会收到ACTION_CANCEL事件,并且不再会有其他消息传递到此。

public boolean onTouchEvent (MotionEvent event)

实现触摸屏幕事件的方法

参数

event 当前事件

返回值

如果事件被处理就返回true,否则返回false

public void open ()

立即打开抽屉

参见

toggle()

close()

animateOpen()

public void setOnDrawerCloseListener(SlidingDrawer.OnDrawerCloseListener onDrawerCloseListener)

给抽屉的关闭事件绑定监听器

参数

onDrawerCloseListener 抽屉关闭时的监听器

public void setOnDrawerOpenListener(SlidingDrawer.OnDrawerOpenListener onDrawerOpenListener)

给抽屉的打开事件绑定监听器

参数

onDrawerOpenListener 抽屉打开时的鉴别器

public void setOnDrawerScrollListener (SlidingDrawer.OnDrawerScrollListener onDrawerScrollListener)

给抽屉的滚动(收缩)事件绑定监听器,轻滑(fling)也被当作一个滚动(收缩)事件,同时它可以触发抽屉关闭或者打开事件。

参数

onDrawerScrollListener 当滚动(收缩)开始或者停止时通知的监听器

public void toggle ()

在抽屉打开或关闭状态之间切换。事件会立即产生。

参见

close()

open()

animateOpen()

animateToggle()

toggle()

public void unlock ()

解锁SlidingDrawer使触摸事件能被处理

参见

lock()

android侧滑抽屉滑动状态,android SlidingDrawer滑动抽屉相关推荐

  1. android 获取linux线程状态,Android 的进程与线程总结

    本文翻译自Android官方文档 当一个Android应用程序组件启动时候,如果此时这个程序的其他组件没有正在运行,那么系统会为这个程序以单一线程的形式启动一个新的Linux 进程. 默认情况下,同一 ...

  2. android 不可点击状态,Android开机指引后notification应为不可点击状态

    Android开机向导后notification应为不可点击状态 notification为SystemUI部分,控制notification的状态是在如下文件中 frameworks\base\pa ...

  3. android 不可点击状态,Android系统.如何使用setClickable同时设置所有按钮可点击或不可点击?...

    屏幕显示四个按钮.按下按钮时,媒体播放器播放声音.我遇到的问题是同时为所有按钮实现setClickable. 单击一个按钮后,我希望所有按钮都不可点击,直到媒体播放器播放完与按钮单击相关的声音.然后我 ...

  4. android检测sim卡状态,android判断手机SIM状态

    释放双眼,带上耳机,听听看~! public String readSIMCard() { TelephonyManager tm = (TelephonyManager)this.getSystem ...

  5. android检测sim卡状态,android 判断网络连接、sim卡信息以及ping操作是否网络连接正常...

    //判断是否为wifi连接 public boolean isWifiConnected(Context context) { if (context != null) { ConnectivityM ...

  6. android imageview scaletype 按钮状态,Android ImageView 之 ScaleType 详解

    基础储备 在 ImageView 中有一个成员变量mDrawMatrix,这个变量是Matrix(矩阵)类型,我们了解一下这个Matrix类,Matrix 常见的方法有setScale(sx,sy) ...

  7. Android面试:整理了Android面试官最常问的174道面试题,让你秒变offer收割机

    本文是专为 Android 开发工程师准备的高薪面试真题汇总题库,涵盖历年大厂高频面试题总结+核心考点深度解析,可以帮助大家全面梳理知识点,并针对面试中可能遇到的问题进行深入分析,在众多面试者中脱颖而 ...

  8. android textview抽屉滑动,Android SlidingDrawer 滑动抽屉效果

    效果如上图,想必大家已经在很多应用中看到过了,下面来看看用SlidingDrawer 实现滑动抽屉效果 从Android1.5开始,加入了android.widget.SlidingDrawer类 S ...

  9. 超酷的Android 侧滑(双向滑动菜单)效果

    Java代码   下面看看我们如何使用它,达到我们想要的效果 public class MainActivity extends Activity { /** * 双向滑动菜单布局 */ privat ...

最新文章

  1. pyspatialite
  2. 面试可能遇到的问题总结【二】
  3. js 导出到excel
  4. 向腾讯云windows服务器传输文件,如何上传本地文件到腾讯云Windows服务器上?
  5. mac securecrt程序无响应_如何重置mac上的系统管理控制器smc教程
  6. Java基础——Java NIO详解(二)
  7. Think in Java第四版 读书笔记5第11章
  8. redis学习笔记---java操作redis,使用expire模拟指定时间段内限制ip访问的次数;
  9. 【Python】调用WPS V9 API,实现Word转PDF
  10. 在线微信编辑器(构思编辑器)——如何让微信公众号文章图文设计更完美
  11. 极端类别不平衡数据下的分类问题研究综述,终于有人讲全了!
  12. 如何进行英文文献检索
  13. 骞云科技携手 EMC,联袂打造超融合基础架构云管方案
  14. xgboost在LTR(学习排序)中的应用
  15. linux内存镜像技术,GitHub - oscomp/proj61-linux-address-range-memory-mirroring: Linux 内核内存镜像功能增强。...
  16. 你的微信昵称,可能正在出卖你
  17. IC617 PDK CDB格式转OA格式
  18. 数据结构头歌实验梳理
  19. java fix sence_iFixit 拆解:Apple 苹果 再次改进蝶式键盘机械结构
  20. 程序员鄙视链至今还存在,你咋想不通呢?看完给你理清思绪

热门文章

  1. UCHome二次开发–基本体系结构
  2. IC自媒体访谈:吾爱IC社区
  3. 【答学员问】34岁想转行做it还可以吗?
  4. Socket编程一实现简易的聊天功能以及文件传输
  5. 前后端结合实现amazeUI分页
  6. 【linux】linux 搭建pppoe服务器
  7. React-Native集成极光推送(Android和IOS)
  8. TF-IDF文本表示方法与词云图
  9. NOIP2020T2题解
  10. KNN的实现——KD树