閉じる

Support4Demosと Sliding pane layout

Android 2.3.7で動かすと落ちる。

SlidingPaneLayoutActivity.javaの FirstLayoutListenerクラスで removeOnGlobalLayoutListenerを呼び出しているけど、これって API Level16からだよね?
「if (Build.VERSION.SDK_INT >= Build.VERSION_CODES. JELLY_BEAN) {」でくくって「removeGlobalOnLayoutListener」と呼び分けることで動くようになった。

3489-0.java
private class FirstLayoutListener implements
ViewTreeObserver.OnGlobalLayoutListener {
@Override
public void onGlobalLayout() {
mActionBar.onFirstLayout();
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
mSlidingLayout.getViewTreeObserver().removeOnGlobalLayoutListener(this);
} else {
mSlidingLayout.getViewTreeObserver().removeGlobalOnLayoutListener(this);
}
}
}

なるほど、こういう UIを簡単に作れる訳か。

Detailがメインなら Drawer layoutを、リストがメインなら Sliding pane layoutって感じで使い分けるのかしら?
今取り組んでいるアプリでは Drawer layoutのほうが合いそうなので、Sliding pane layoutは頭の隅に置いておこう。

Drawer layoutは割と日本語の情報があるのに Sliding pane layoutはほとんど無いのは何故だろう?確かに前者の方がつぶしがききそうではあるのだけど。

2013/07/08追記

Drawer layoutと Sliding pane layout両方を使ってみて、使い分けの指針がわかったかな?

Drawer layoutはあくまで Drawerなので、必要な時に引き出すだけの用途。
対して Sliding pane layoutは Summary-Detailパターンのように主従はあったとしても二つのレイアウトが必須で必要に応じて表示/非表示を切り替えるような用途に使うと。

ちなみに日本語の情報がないのは必要がないほどシンプルだからだと思う。

Support4Demosと Sliding pane layout」への1件のフィードバック

コメントを残す

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

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