0

私はAndroidで動的なスライド/拡張​​メニューを実装する正しい方法を見つけるために頭を悩ませています(名前が正しいかどうかはわかりませんが)。

私が達成しようとしていることを示す画像:

スライドメニュー付きのiPhoneアプリ
(出典:teneuesdigital.com

画像では、後ろのiPadバージョンに拡張可能なメニューがあることがわかります。ルートメニューの項目をクリックすると、自動的に右に展開され、サブメニュー項目が表示されます。これは、サブメニューごとに繰り返すことができます。新しいサブメニューが右側に表示されるたびに。

今、私はタブレットと電話の両方のためにこのアプリを設計しています。つまり、タブレットではメニューが右に拡張され、使用可能な画面スペースがいっぱいになりますが、電話では、現在表示されているメニュー(ListView)をクリックしたサブメニューのリストに置き換える必要があります。

フラグメントとListFragmentを試してみましたが、うまくいきませんでした...画面サイズによってレイアウトが完全に異なるため、フラグメントが最適だと思います(ただし、間違っている可能性があります)。

タブレットバージョンの場合:私の考えは、最初にルートメニューを最初のListFragmentとして表示し、次にアイテムがクリックされたときに、新しいフラグメントを作成して最初のフラグメントの右側にスライドさせることです。それはうまくいくでしょうか?どうしますか?

電話(mdpi)バージョンの場合:現在表示されているメニューフラグメントは常にサブメニューフラグメントに置き換えられます...フラグメントトランザクションを使用すれば、これで十分簡単だと思います。

今、私が自分自身に問いかけているもう1つの質問は、同じアクティビティでこれをどのように実装するかということです。メニューを展開する必要があるのか​​、現在表示されているものを置き換える必要があるのか​​に応じて、さまざまなFragmentTransactionタイプを管理するために、画面の解像度を検出する必要がありますか?これを効率的に行うにはどうすればよいですか?

すべてのアイデアとコメントに感謝します。

4

1 に答える 1

0

アイデアとして、Realtive レイアウトまたは Expandable ListView で Visibility:gone を使用して ListViews を使用できます。最初のものを実装しましたが、これが最も簡単です。

于 2012-07-13T05:59:08.117 に答える