SlidingDrawer SDK中文介绍

SlidingDrawer可以将内容隐藏在屏幕外,允许用户通过拖拽一个把手,将内容带回屏幕上显示. SlidingDrawer可以横向使用,也可以纵向使用。 该小部件由两个子视图组成:用于拖拽的把手视图和由该把手连接并拖拽的内容。 SlidingDrawer 应该用于覆盖内部布局。这意味着SlidingDrawer应该只用于象 FrameLayout或 RelativeLayout 这样的布局的内部。SlidingDrawer 的大小定义了滑出屏幕时其占用的空间。 因此一般SlidingDrawer 的长宽属性都设置为match_parent。 在XML布局中,SlidingDrawer必须为其把手和内容定义ID:

 <SlidingDrawer
     android:id="@+id/drawer"
     android:layout_width="match_parent"
     android:layout_height="match_parent"

     android:handle="@+id/handle"
     android:content="@+id/content">

     <ImageView
         android:id="@id/handle"
         android:layout_width="88dip"
         android:layout_height="44dip" />

     <GridView
         android:id="@id/content"
         android:layout_width="match_parent"
         android:layout_height="match_parent" />

 </SlidingDrawer>
 

概述


嵌套类
interface SlidingDrawer.OnDrawerCloseListener 抽屉关闭时执行的回调函数. 
interface SlidingDrawer.OnDrawerOpenListener 抽屉打开时执行的回调函数. 
interface SlidingDrawer.OnDrawerScrollListener 抽屉滑动时执行的回调函数. 
XML 属性
属性名称 关联方法 描述
android:allowSingleTap   指示是否可以通过点击抽屉把手来开闭抽屉. 
android:animateOnClick   指示用户单击把手时是否显示抽屉的开闭动画. 
android:bottomOffset   SlidingDrawer 的把手距离底边的额外距离. 
android:content   标识用于显示抽屉内容的子视图. 
android:handle   标识用于显示抽屉把手的子视图. 
android:orientation   SlidingDrawer 的抽出方向. 
android:topOffset   SlidingDrawer 的把手距离顶边的额外距离. 
[展开]
继承 XML 属性
继承自 class android.view.ViewGroup
继承自 class android.view.View
常量
int ORIENTATION_HORIZONTAL  
int ORIENTATION_VERTICAL  
[展开]
继承常量
继承自 class android.view.ViewGroup
继承自 class android.view.View
[展开]
继承字段
继承自 class android.view.View
公有构造函数
SlidingDrawer( Context context,  AttributeSet attrs)
根据指定的XML中定义的属性创建SlidingDrawer。
SlidingDrawer( Context context,  AttributeSet attrs, int defStyle)
根据指定的XML中定义的属性创建SlidingDrawer。
公有方法
void animateClose()
以动画的形式关闭抽屉。
void animateOpen()
以动画的形式打开抽屉。
void animateToggle()
以动画的形式切换抽屉的开闭状态。
void close()
立即关闭抽屉。
View getContent()
返回抽屉的内容。
View getHandle()
返回抽屉的把手。
boolean isMoving()
指示抽屉是否正在移动。
boolean isOpened()
指示抽屉当前是否出于全开状态。
void lock()
锁定SlidingDrawer,使其忽略触控事件。
void onInitializeAccessibilityEvent( AccessibilityEvent event)
使用作为事件源的该视图的信息初始化  AccessibilityEvent 事件.换句话说, 该视图状态的变化是触发辅助事件的源头.
void onInitializeAccessibilityNodeInfo( AccessibilityNodeInfo info)
使用该视图的信息初始化  AccessibilityNodeInfo 对象.
boolean onInterceptTouchEvent( MotionEvent event)
使用此方法可以拦截所有触摸屏动作引发的事件.这意味着你可以监视分派给子项的事件, 并且可以在当前手势的任何一点获得其控制权.
boolean onTouchEvent( MotionEvent event)
实现该方法可以处理触屏动作事件.
void open()
立即打开抽屉。
void setOnDrawerCloseListener( SlidingDrawer.OnDrawerCloseListener onDrawerCloseListener)
设置用于接收抽屉关闭通知的监听器。
void setOnDrawerOpenListener( SlidingDrawer.OnDrawerOpenListener onDrawerOpenListener)
设置用于接收抽屉打开通知的监听器。
void setOnDrawerScrollListener( SlidingDrawer.OnDrawerScrollListener onDrawerScrollListener)
设置接收抽屉开始滑动和结束滑动通知的监听器.
void toggle()
切换抽屉的开闭状态。状态立即变更。
void unlock()
解除对SlidingDrawer的锁定,使其可以处理触控事件。
保护方法
void dispatchDraw( Canvas canvas)
调用此方法来绘出子视图.可被衍生类重写,以便在其子项被画出之前取得控制权.
void onFinishInflate()
根据 XML 生成视图工作完成.该函数在生成视图的最后调用,在所有子视图添加完之后.
void onLayout(boolean changed, int l, int t, int r, int b)
该视图设置其子视图的大小及位置时调用.派生类可以重写此方法,并为其子类布局.
void onMeasure(int widthMeasureSpec, int heightMeasureSpec)

评估视图及其内容,以决定其宽度和高度.此方法由 measure(int, int) 调用,子类可以重载以提供更精确、更有效率的衡量其内容尺寸的方法.

[展开]
继承方法
 From class android.view.ViewGroup
 From class android.view.View
 From class java.lang.Object
 From interface android.graphics.drawable.Drawable.Callback
 From interface android.view.KeyEvent.Callback
 From interface android.view.ViewManager
 From interface android.view.ViewParent
 From interface android.view.accessibility.AccessibilityEventSource

XML 属性


android:allowSingleTap

指示是否可以通过点击抽屉把手来开闭抽屉. (如果为假,用户必须通过 拖动或快速滑动把手,或通过单击轨迹球来开闭抽屉。) 默认值为真.

Must be a boolean value, either "true" or "false".

This may also be a reference to a resource (in the form "@[package:]type:name") or theme attribute (in the form "?[package:][type:]name") containing a value of this type.

This corresponds to the global attribute resource symbol allowSingleTap.

关联方法
    android:animateOnClick

    指示用户单击把手时是否显示抽屉的开闭动画. 默认值为真.

    Must be a boolean value, either "true" or "false".

    This may also be a reference to a resource (in the form "@[package:]type:name") or theme attribute (in the form "?[package:][type:]name") containing a value of this type.

    This corresponds to the global attribute resource symbol animateOnClick.

    关联方法
      android:bottomOffset

      SlidingDrawer 的把手距离底边的额外距离.

      Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), in (inches), mm (millimeters).

      This may also be a reference to a resource (in the form "@[package:]type:name") or theme attribute (in the form "?[package:][type:]name") containing a value of this type.

      This corresponds to the global attribute resource symbol bottomOffset.

      关联方法
        android:content

        标识用于显示抽屉内容的子视图.

        Must be a reference to another resource, in the form "@[+][package:]type:name" or to a theme attribute in the form "?[package:][type:]name".

        This corresponds to the global attribute resource symbol content.

        关联方法
          android:handle

          标识用于显示抽屉把手的子视图.

          Must be a reference to another resource, in the form "@[+][package:]type:name" or to a theme attribute in the form "?[package:][type:]name".

          This corresponds to the global attribute resource symbol handle.

          关联方法
            android:orientation

            SlidingDrawer 的抽出方向.

            Must be one of the following constant values.

            Constant Value Description
            horizontal 0 定义为横向.
            vertical 1 定义为纵向.

            This corresponds to the global attribute resource symbol orientation.

            关联方法
              android:topOffset

              SlidingDrawer 的把手距离顶边的额外距离.

              Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), in (inches), mm (millimeters).

              This may also be a reference to a resource (in the form "@[package:]type:name") or theme attribute (in the form "?[package:][type:]name") containing a value of this type.

              This corresponds to the global attribute resource symbol topOffset.

              关联方法

                常量


                public static final int ORIENTATION_HORIZONTAL
                添加于  API 级别 3

                常量值: 0 (0x00000000)
                public static final int ORIENTATION_VERTICAL
                添加于  API 级别 3

                常量值: 1 (0x00000001)

                公有构造函数


                public SlidingDrawer (Context context, AttributeSet attrs)
                添加于  API 级别 3

                根据指定的XML中定义的属性创建SlidingDrawer。

                参数
                context 应用程序上下文。
                attrs XML中定义的属性。
                public SlidingDrawer (Context context, AttributeSet attrs, int defStyle)
                添加于  API 级别 3

                根据指定的XML中定义的属性创建SlidingDrawer。

                参数
                context 应用程序上下文。
                attrs XML中定义的属性。
                defStyle 应用到该小部件的样式。

                公有方法


                public void animateClose ()
                添加于  API 级别 3

                以动画的形式关闭抽屉。

                public void animateOpen ()
                添加于  API 级别 3

                以动画的形式打开抽屉。

                public void animateToggle ()
                添加于  API 级别 3

                以动画的形式切换抽屉的开闭状态。

                public void close ()
                添加于  API 级别 3

                立即关闭抽屉。

                public View getContent ()
                添加于  API 级别 3

                返回抽屉的内容。

                返回值
                • 用于呈现抽屉内容的视图,由XML中的“content”来标识。
                public View getHandle ()
                添加于  API 级别 3

                返回抽屉的把手。

                返回值
                • 用于呈现抽屉把手的视图,由XML中的“handle”来标识。
                public boolean isMoving ()
                添加于  API 级别 3

                指示抽屉是否正在移动。

                返回值
                • 若抽屉正在移动返回真;否则返回假。
                public boolean isOpened ()
                添加于  API 级别 3

                指示抽屉当前是否出于全开状态。

                返回值
                • 若抽屉已打开返回真;否则返回假。
                public void lock ()
                添加于  API 级别 3

                锁定SlidingDrawer,使其忽略触控事件。

                参见
                public void onInitializeAccessibilityEvent (AccessibilityEvent event)
                添加于  API 级别 14

                使用作为事件源的该视图的信息初始化 AccessibilityEvent 事件.换句话说, 该视图状态的变化是触发辅助事件的源头.

                例如:为超类实现的属性集合中添加设置密码属性的事件:

                 public void onInitializeAccessibilityEvent(AccessibilityEvent event) {
                     super.onInitializeAccessibilityEvent(event);
                     event.setPassword(true);
                 }

                如果调用 setAccessibilityDelegate(AccessibilityDelegate) 时指定了 View.AccessibilityDelegate,则 onInitializeAccessibilityEvent(View, AccessibilityEvent) 负责处理该调用.

                注意: 向事件中加入信息时一定要首先调用超类的实现, 因为默认实现添加了一些基本信息.

                参数
                event 初始化的事件.
                public void onInitializeAccessibilityNodeInfo (AccessibilityNodeInfo info)
                添加于  API 级别 14
                public boolean onInterceptTouchEvent (MotionEvent event)
                添加于  API 级别 3

                使用此方法可以拦截所有触摸屏动作引发的事件.这意味着你可以监视分派给子项的事件, 并且可以在当前手势的任何一点获得其控制权.

                使用此方法需谨慎.因为它与 View.onTouchEvent(MotionEvent) 有相当复杂的交互. 使用它需要像该方法实现一样正确的实现该方法.触控事件是按如下顺序接收的:

                1. 首先该函数收到按下事件.
                2. 按下事件会在视图组的子视图以及本视图的 onTouchEvent() 方法中处理. 这意味着若要处理之后的手势(代替父视图来处理该事件),你应该实现 onTouchEvent() 方法并返回真.另外,如果你的 onTouchEvent() 方法返回真, onInterceptTouchEvent() 方法将不会收到接下来发生的事件, 整个触控处理必须在 onTouchEvent() 方法中进行.
                3. 如果该方法返回假,接下来的每个事件(直到最后的抬起事件) 都会首先由该函数来处理,之后传给目标对象的 onTouchEvent() 方法.
                4. 如果该函数返回真,你不会收到接下来的任何事件: 目标视图会接收到该事件,但其动作被标记为 ACTION_CANCEL,之后的事件都会交由你的 onTouchEvent() 方法来处理,不再出现在该方法中.

                参数
                event 沿着层次结构向下分派的动作事件.
                返回值
                • 若将动作事件从子视图中截获并通过 onTouchEvent() 将他们分派给当前视图组,则返回真.当前目标将收到 ACTION_CANCEL 事件,并且不再会有其他消息传入该函数.
                public boolean onTouchEvent (MotionEvent event)
                添加于  API 级别 3

                实现该方法可以处理触屏动作事件.

                参数
                event 动作时间
                返回值
                • 如果处理了事件,返回真;否则返回假.
                public void open ()
                添加于  API 级别 3

                立即打开抽屉。

                public void setOnDrawerCloseListener (SlidingDrawer.OnDrawerCloseListener onDrawerCloseListener)
                添加于  API 级别 3

                设置用于接收抽屉关闭通知的监听器。

                参数
                onDrawerCloseListener 抽屉关闭时通知的监听器。
                public void setOnDrawerOpenListener (SlidingDrawer.OnDrawerOpenListener onDrawerOpenListener)
                添加于  API 级别 3

                设置用于接收抽屉打开通知的监听器。

                参数
                onDrawerOpenListener 抽屉打开时通知的监听器。
                public void setOnDrawerScrollListener (SlidingDrawer.OnDrawerScrollListener onDrawerScrollListener)
                添加于  API 级别 3

                设置接收抽屉开始滑动和结束滑动通知的监听器. 快速滑动作为抽屉抽屉滑动对待. 快速滑动会触发抽屉打开或关闭事件。

                参数
                onDrawerScrollListener 滑动开始或结束时通知的监听器。
                public void toggle ()
                添加于  API 级别 3

                切换抽屉的开闭状态。状态立即变更。

                public void unlock ()
                添加于  API 级别 3

                解除对SlidingDrawer的锁定,使其可以处理触控事件。

                参见

                保护方法


                protected void dispatchDraw (Canvas canvas)
                添加于  API 级别 3

                调用此方法来绘出子视图.可被衍生类重写,以便在其子项被画出之前取得控制权. 此方法由 draw 方法在绘制子视图时调用. 子类可以重写该方法,在绘制其子视图之前获得控制权.(但是在绘制其自身的视图之后.)

                参数
                canvas 绘制视图的画布.
                protected void onFinishInflate ()
                添加于  API 级别 3

                根据 XML 生成视图工作完成.该函数在生成视图的最后调用,在所有子视图添加完之后.

                即使子类覆盖了 onFinishInflate 方法,也应该调用父类的方法,使该方法得以执行.

                protected void onLayout (boolean changed, int l, int t, int r, int b)
                添加于  API 级别 3

                该视图设置其子视图的大小及位置时调用.派生类可以重写此方法,并为其子类布局. Derived classes with children should override this method and call layout on each of their children.

                参数
                changed 是否为视图设置了新的大小和位置.
                l 相对于父视图的左侧的位置.
                t 相对于父视图的顶部的位置.
                r 相对于父视图的右侧的位置.
                b 相对于父视图的底部的位置.
                protected void onMeasure (int widthMeasureSpec, int heightMeasureSpec)
                添加于  API 级别 3

                评估视图及其内容,以决定其宽度和高度.此方法由 measure(int, int) 调用,子类可以重载以提供更精确、更有效率的衡量其内容尺寸的方法.

                约定: 覆盖该方法时,必须调用 setMeasuredDimension(int, int) 方法来保存评估结果的视图的宽度和高度.如果忘记将导致 measure(int, int) 方法抛出IllegalStateException异常.要有效的利用父类的onMeasure(int, int)方法.

                基类测量的是背景的大小,除非 MeasureSpec 允许超过背景.子类应该重写 onMeasure(int, int) 方法,以为其内容提供更适合的大小.

                如果重写了该方法,子类要确保其高度和宽度大于等于视图的最小高度和宽度. (getSuggestedMinimumHeight() 和 getSuggestedMinimumWidth()

                参数
                widthMeasureSpec 父视图要求的横向空间大小.该要求由 View.MeasureSpec 进行了编码处理.
                heightMeasureSpec 父视图要求的纵向空间大小.该要求由 View.MeasureSpec 进行了编码处理.
                1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看rEADME.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看rEADME.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
                评论
                添加红包

                请填写红包祝福语或标题

                红包个数最小为10个

                红包金额最低5元

                当前余额3.43前往充值 >
                需支付:10.00
                成就一亿技术人!
                领取后你会自动成为博主和红包主的粉丝 规则
                hope_wisdom
                发出的红包
                实付
                使用余额支付
                点击重新获取
                扫码支付
                钱包余额 0

                抵扣说明:

                1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
                2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

                余额充值