Android 安卓,滑动抽屉
我注意到,Android 安卓,滑动抽屉,android,slidingdrawer,Android,Slidingdrawer,我注意到,animateOpen()、animateClose()和animateToggle()正在执行相同的功能,这意味着它们中的任何一个都可以替换其他功能。 我注意到的唯一区别是,动画的速度因不同方法而异,如下所示: animateOpen(),打开时的动画比关闭时的动画快 animateClose(),关闭时的动画比打开时的动画快 动画切换(),两种速度相等 所以,我的问题是: 我错过什么了吗?或者,在使用任何一个之前,我是否只需检查isOpened() 我问这个问题是因为当我在某处写a
animateOpen()
、animateClose()
和animateToggle()
正在执行相同的功能,这意味着它们中的任何一个都可以替换其他功能。我注意到的唯一区别是,动画的速度因不同方法而异,如下所示:
animateOpen()
,打开时的动画比关闭时的动画快animateClose()
,关闭时的动画比打开时的动画快动画切换()
,两种速度相等我错过什么了吗?或者,在使用任何一个之前,我是否只需检查
isOpened()
我问这个问题是因为当我在某处写
animateClose()
时,我的问题出现了,我想如果滑动抽屉已经关闭,那么就不会采取任何行动,但我发现它的行为与animateToggle()
animateOpen
完全相同,animateclose
和animateToggle
公共方法将分别使幻灯片打开、关闭或使用animation切换。这些方法必须与open、close进行比较,后者将在没有动画的情况下打开和关闭滑块。在默认实现中,动画的速度不应改变。在两个不同的设备上确认
- 对已关闭的抽屉调用的
有时会使抽屉处于打开状态animateClose()
- 对已打开的抽屉调用的
将始终(?)设置抽屉关闭的动画animateOpen()
close
和open
)似乎如您所期望的那样工作
鉴于此,我建议将SlidingDrawer子类化,并重写打开或关闭抽屉的5个方法。使用几个成员变量布尔,您应该能够确定抽屉的真实状态,并调用(或不调用)适当的超类方法,相应地更新您的状态
(可能还需要实现OnDrawerXxxListener
s以保持您的状态正确;我的抽屉仅以编程方式打开和关闭,不使用“句柄”,因此我没有对此进行测试。)
编辑添加:这样做的好处是,您可以根据子类的状态加上现有的
isMoving()
方法添加isopenning()
和isClosing()
。这就是它的行为方式。这不是它的行为方式。