SlidingDrawerはAndroidSDK1.5から使えるようになったユーザーインターフェースで
一つのハンドルと、画面外に隠れたUIの2つの部品で構成されている。
ハンドルをスライドすると、その先に隠れているUIを引き出すことができる。
以下はSlidingDrawerを使ったレイアウトxmlの例である。
分かりやすいようにするために各Viewには適当に背景色を付けておいた。
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <TextView android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="#ff006666" android:text="TextView" /> <SlidingDrawer android:id="@+id/drawer" android:layout_width="fill_parent" android:layout_height="wrap_content" android:handle="@+id/handle" android:content="@+id/content" android:topOffset="200dp"> <TextView android:id="@id/handle" android:background="#FFcc0000" android:text="SlidingDrawer Handle" android:layout_width="88dp" android:layout_height="44dp" /> <LinearLayout android:id="@id/content" android:layout_width="fill_parent" android:layout_height="fill_parent" > <TextView android:layout_width="fill_parent" android:layout_height="fill_parent" android:text="SlidingDrawer Content" android:background="#ff996600" /> </LinearLayout> </SlidingDrawer> </RelativeLayout>
注意が必要なのは、ハンドルと、隠れたUIのために2つのidをSlidingDrawerの宣言の中で前もって指定しておかなければ
いけないことである。上の例でそれをしているのは16行目と17行目である。
また、21行目ではTextViewをハンドルにするために先ほど16行目で宣言したidを指定し、27行目では
LinearLayoutを隠すUIとするため、17行目で宣言したidを指定している。
なお、これらはあくまで例であり、handleとcontentになるのはViewであれば何でもかまわない。
実行すると以下のようになる。
初期状態
UIを引き出した状態
※今回の例では18行目でtopOffsetを指定して画面の途中でUIの引き出しを止めるようにしてみた。