Android SlidingMenuを試す

2013-05-12T00:00:00+00:00 Android Java

https://github.com/jfeinstein10/SlidingMenu

っていうfoursquareとかのアプリとかで採用されているやつらしく、Facebookアプリとかでも左上(通常はActionBarとかにアイコンが表示されている部分)を押すと左にサイドメニューがびょ〜んって出てくるやつ、あんな感じなのを実現できるライブラリな模様で

で以前ハマったけど今ハマってない理由としてコンテンツが表示されている部分がFragmentかそうじゃないかでしかないんだけれども、AndroidAnnotationsと一緒に使ってる場合においては、何やら相性があんまりよろしくないのかうまく動いてくれなかったりとかあった。んまぁ公式的には「androidannotations slidingmenu conflict」とかでググればなんかそういう情報出た気がするのだけど...

とりまぁ使ってみた。ソースとかは書かない、公式でやってる事と同じだしどっちにしろgithubにうpするので(ry

という感じで左から右にスライドさせる青い部分がメニュー部として出てくる。レイアウトせずただ色だけ変えてるので

最近なアプリのレイアウト的な感じでスライドする事で出てくるメニューっていうのを採用したいのであればこれ使えば良いんじゃないかなーって思ったりする所

余談

Programmableにメニューを出したり閉じたりしたい場合はSlidingMenu.toggleメソッドを使えば良い模様。isMenuShowingとかのメソッドもある。toggleメソッドの動作原理てきには

  • isMenuShowingがtrueな場合にはshowContent(boolean animate)を実行して、コンテンツの表示だけに戻す
  • isMenuShowingがfalseな場合にはshowMenu(boolean animate)を実行して、メニュー部を表示させる

っていう原理っぽい。まぁソース読んだら普通に分かる

追記

タッチスライドではなく、単純にandroid.R.id.homeとかをタッチする事だけでメニューを出す場合に、あくまでスライドでメニューを表示させないっていうのをやりたいのであれば

mSlidingMenu.setTouchModeAbove(SlidingMenu.TOUCHMODE_NONE);

な感じでsetTouchModeAboveを変更すれば良い。また、内容部分をスライドするかアプリのウィンドウをスライドして表示させるかはattachToActivityの第2引数を変えれば良い

// ActionBarな部分を含めて引っ張る
mSlidingMenu.attachToActivity(this, SlidingMenu.SLIDING_WINDOW);

// ActionBarを含めないコンテンツ部分だけを引っ張る
mSlidingMenu.attachToActivity(this, SlidingMenu.SLIDING_CONTENT);

な感じでまぁActionBarな辺りを固定させるかさせないかって所かなこれは

Androidでテストカバレッジレポートを出力 Universal Image Loader for Androidを使ってみた