一、简介
SlidingDrawer隐藏屏外的内容,并允许用户通过handle以显示隐藏内容。它可以垂直或水平滑动,它有俩个View组成,其一是可以拖动的handle,其二是隐藏内容的View.它里面的控件必须设置布局,在布局文件中必须指定handle和content.左右拉抽屉的效果,将 SlidingDrawer属性设置为android:orientation="horizontal"即可。
二、重要属性
android:allowSingleTap:指示是否可以通过handle打开或关闭 android:animateOnClick:指示是否当使用者按下手柄打开/关闭时是否该有一个动画。 android:content:隐藏的内容 android:handle:handle(手柄)三、重要方法
animateClose():关闭时实现动画。 close():即时关闭 getContent():获取内容 isMoving():指示SlidingDrawer是否在移动。 isOpened():指示SlidingDrawer是否已全部打开 lock():屏蔽触摸事件。 setOnDrawerOpenListener(new OnDrawerOpenListener():SlidingDrawer打开时调用。 setOnDrawerCloseListener(new onDrawerCloseListener):SlidingDrawer关闭时调用。:SlidingDrawer滑动时调用。
unlock():解除屏蔽触摸事件。 toggle():切换打开和关闭的抽屉SlidingDrawer。
private SlidingDrawer mDrawer; private Button mDrawerBtn; mDrawer = (SlidingDrawer) findViewById(R.id.slidingDrawer1); mDrawerBtn = (Button) findViewById(R.id.handle); mDrawer.setOnDrawerOpenListener(new OnDrawerOpenListener(){ public void onDrawerOpened(){ mDrawerBtn.setBackgroundDrawable(getResources().getDrawable(R.drawable.shake_report_dragger_down)); TranslateAnimation titleup = new TranslateAnimation( Animation.RELATIVE_TO_SELF,0f, Animation.RELATIVE_TO_SELF,0f, Animation.RELATIVE_TO_SELF,0f, Animation.RELATIVE_TO_SELF,-1.0f); titleup.setDuration(200); titleup.setFillAfter(true); } }); /* 设定SlidingDrawer被关闭的事件处理 */ mDrawer.setOnDrawerCloseListener(new OnDrawerCloseListener(){ public void onDrawerClosed(){ mDrawerBtn.setBackgroundDrawable(getResources().getDrawable(R.drawable.shake_report_dragger_up)); TranslateAnimation titledn = new TranslateAnimation( Animation.RELATIVE_TO_SELF,0f, Animation.RELATIVE_TO_SELF,0f, Animation.RELATIVE_TO_SELF,-1.0f, Animation.RELATIVE_TO_SELF,0f); titledn.setDuration(200); titledn.setFillAfter(false); } });
还有注意的是: SlidingDrawer should be used as an overlay inside layouts. This means SlidingDrawer should only be used inside of a FrameLayout or a RelativeLayout for instance, 如果显示的时候不正常,考虑上面的原因。
This class was deprecated in API level 17,就是活这个类在Android API 17以上是不建议支持使用的了。
官方链接:
参考链接: