2011-10-24 17 views
12

タブが必要なアプリケーションをビルドしていますが、現在は廃止予定です。 devガイドは、代わりにタブを置き換えるためにフラグメントを使用するように言います。しかし、私のアプリケーションでは各タブ内にフラグメントがある必要があります。これはフラグメント内のフラグメントを意味しますが、これは許されません。誰もがこのための可能な回避策を知っていますか?フラグメント内のフラグメントのタブ

答えて

3

タブのアクションバーのサポートは、タブのコンテンツがフラグメントであることを容易にするように設計されていますが、これは厳密には必須ではありません。 ViewFlipperを使用したり、setContentView()への呼び出しを繰り返したり、アクションバータブを選択したときに他のものを変更する手配をすることができます。

ネイティブアクションバー(Android 1.x/2.x)より前には、古典的なタブを使用するか、Action Bar Sherlockのようなものを使用してアクションバーとタブを取得します。

+0

タブが変更されるたびにsetContentViewを呼び出すよりも、ViewFlipperを使用する方が効率的ですか?それは他の方法ですか?違いはごくわずかですか? –

+1

@TJThind: 'setContentView()'にレイアウトIDを渡すのではなく、あなた自身でレイアウトを膨張させて 'setContentView()'に与えると、 'setContentView()'と 'ViewFlipper'は同等の速度とメモリになります。賢い。 'setContentView()'を普通にやっているように呼び出すと、リソースIDで毎回膨らんだり(毎回あなたのイベントリスナーを呼び出す必要があります)、ヒープを少なくします(次の 'setContentView ()コールがガベージコレクトされる可能性があります。 – CommonsWare

1

複数のトグルボタンが含まれている上部に「タブ」の部分があるため、タブを偽装しています。私は各タブの別々の断片を含むマージビューを持っている。 他のボタンを「オフ」に切り替え、その「タブ」の断片を表示し、他のボタンを隠すことによって、トグルボタンのタップに応答します。後半

+0

マージビューの意味を説明できますか? – Lance

+0

http://developer.android.com/resources/articles/layout-tricks-merge.html – goto10

+0

具体的なXMLレイアウトファイルのサンプルコードを表示することは可能ですか?私はこれを達成する方法をつかむのに苦労しています。 – Lance

0

その少し、しかし、はい、あなたがここに:)できexample だが、タブ内のフラグメントの内部フラグメントのためのAndroidのネイティブな方法ではありませんあなたはフラグメントの詳細を表示する場合は、新しいfragmentActivityを開始する必要があります。あなたはアンドロイドの方法ではありません!

関連する問題