閉じる

Sliding pane layout

Sliding pane layoutを使うのに適当な題材を見つけたので手を付けてみる。
ひな形として Support4Demosから SlidingPaneLayoutActivity.javaと sliding_pane_layout.xmlをコピー。
当然、Android 2.3でも動くようにする修正も加え、deprecated指定のある canSlide,smoothSlideClosed,smoothSlideOpenも isSlideable, closePane,openPaneに差し替える。*1
sliding_pane_layout.xmlに含まれる二つのビューを適当に差し替える。*2
SlidingPaneLayoutActivity.javaに含まれる mList/mContentに関連する部分を差し替える。*3
基本的にこれだけ。
後はライブラリの方で画面サイズを見て余裕があるようなら両パネルを展開し、余裕が無いようなら ScrollView部分をスライドできるように面倒見てくれる。*4
今までは画面サイズに余裕があるようだったら両方のパネルを展開し(この動作は変わらない)、余裕が無いようなら ListView部分だけの Activityを表示して、必要に応じて ScrollView部分だけの Activityへ遷移と動作を分けていたのが楽になるな。
ただ、画面サイズに余裕が無い端末のユーザーは単一の Activityになる故に ScrollView部分の Activityから ListView部分の Activityへ戻っていたタイミングでバックキーを押したくなるのを我慢してスライドさせるように慣れる必要がある。


*1 SlidingPaneLayoutを参照。

*2 自分の場合、どちらも FrameLayoutに差し替えた。

*3 自分の場合、ListView部分を独自の ListFragmentを挿入するようにし、ListFragmentのクリックハンドラで ScrollViewがあった部分の Fragmentを差し替えるようにした。

*4 スライドできる時、起動時に ScrollViewを開くか否かはコードによる。

コメントを残す

メールアドレスが公開されることはありません。必須項目には印がついています *

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)