2つの異なるデバイスで確認済みです。
animateClose()
called on a drawer that is already closed will sometimes animate the drawer to opened.
animateOpen()
called on a drawer that is already opened will always (?) animate the drawer to closed.
直接関数( close
と open
)は期待通りに機能しているようです。
これを考えると、私はSlidingDrawerをサブクラス化し、ドロワーを開いたり閉じたりする5つのメソッドをオーバーライドすることを提案します。いくつかのメンバ変数ブール値を使用すると、ドロワの実際の状態を判断し、適切なスーパークラスメソッドを呼び出す(または呼び出さない)ことができます。
(あなたの状態を正しく保つために OnDrawerXxxListener
を実装する必要があるかもしれません;私の引き出しはプログラムで開いたり閉じたりするだけで、 "ハンドル"を使わないので、テストしませんでした。
追加するために編集する:あなたのサブクラスの状態に加えて、既存の isMoving()を基に isOpening()
および isClosing()
)
メソッドを使用します。