2012-03-16 10 views
6

私はネスティングフラグメント(例えばhere。)避けなければならないの周りに読んだが、私は次の操作を実行する方法を見ることができません。ネストされたフラグメントには何か代替手段はありますか?

私は、次のUIを持つタブアプリケーション(android:minSdkVersion="12")に取り組んでいます:

enter image description here

(...「ギャラリー」、「ホーム」)検索バーは常にここで、ユーザーは、いくつかのメニューオプションをナビゲートすることができます。私の考えは、BaseActivityを、検索バーとFrameLayoutを含むレイアウトで使用して、ユーザーのナビゲーション選択に対応するFragmentをロードすることでした。

私の問題は、 'Home' Fragmentにはいくつかのタブがあります。これは同じ方法で実装したいと思っています。つまり、タブバーとFrameLayoutを含むレイアウトで、対応するフラグメントをロードします。

私はBaseActivityではなく、いくつかのアクティビティを使用してすべてのレイアウトに検索バーを含めることができますが、ユーザーがアクティビティを変更するたびに表示され、消えてしまうことはわかっています...

EDIT

私も固定フッターが必要なので、CommonsWareが提案したアクションバーを彼の答えに使うことはできません。

誰かが助けることができますか?

答えて

3

ネストされたフラグメントがあります!!!!!!!新しいサポートライブラリバージョン(サポートライブラリv4、バージョン11)

0

BaseActivityレイアウトでタブバーを使用できませんか? BaseActivityレイアウトでは、検索バー、タブバー、フラグメントフレームになります。 一部のフラグメントでナビゲーションバーを使用したくない場合は、可視性View.GONEをナビゲーションバーに設定できます。

2

これには、ViewPagerとFragmentPagerAdapterを使用できます。 ViewPagerを使用すると、ユーザーはビュー間でスワイプすることができます(場合によっては)Fragments。タブ様コントロールを表示するには、ViewPagerIndicatorを使用します。あなたの代わりにFrameLayoutFragmentをロードするの、説明したレイアウトを使用して

、このようなレイアウトでそれを膨らま:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical"> 

    <com.viewpagerindicator.TabPageIndicator 
     android:id="@+id/viewpagerIndicator" 
     android:layout_height="wrap_content" 
     android:layout_width="match_parent" /> 
    <android.support.v4.view.ViewPager 
     android:id="@+id/viewpager" 
     android:layout_width="match_parent" 
     android:layout_height="0dp" 
     android:layout_weight="1" /> 

</LinearLayout> 

次に、その後、あなたのフラグメントをロードしますあなたのViewPagerにFragmentPagerAdapterを割り当てます。

my answer hereもご覧ください。より詳細な例を示します。ただし、使用する必要があるFragmentPagerAdapterではなく、PagerAdapterになります。

0

私のアイデアは、検索バーとユーザーの選択肢に対応するFragmentをロードするFrameLayoutを含むレイアウトでBaseActivityを使用することでした。

すべてのアクティビティを1つのアクティビティに強制しようとするのではなく、別々のアクティビティを使用する場合は、ネストされたフラグメントに巻き込まれません。

+0

しかし、私は右、固定ヘッダなどの検索ボックスを持つことができないいくつかの活動とgetParentFragment()?私はそれをすべてのアクティビティのレイアウトに含める必要があり、アクティビティを変更するたびにリロードされます(つまり、UIの視点からは消えて再表示されます)。タブのいくつかのアクティビティを作成する場合と同じことです。 – jul

+1

@jul: "しかし、いくつかのアクティビティでは、検索ボックスを固定ヘッダとして使用することはできません。 - それぞれの活動のトップに置く。それでも、アクションバーに入れてください。 「すべてのアクティビティのレイアウトにそれを含める必要があり、アクティビティを変更するたびにリロードされます(UIの視点からは消えて再表示されます)。 – CommonsWare

+0

私は検索バーを必要とするので、アクションバーをカスタマイズできるかどうかを確認します。固定フッターも必要なので、私は2つのアクションバーを持つことができ、カスタマイズすることができます、私はそれを使用します。ありがとう。 – jul

0

良いニュース!!!!! アンドロイドサポートライブラリバージョン11は、すでにネストされたフラグメントをサポートしています。 v4のサポートライブラリのための Support Package, revision 11 (November 2012)

変更:
       ユーザーインターフェイス
               ネストされたフラグメントのクラスのサポートが追加されました。

ネストされたフラグメントを実装する方法を

android developer

からあなたは今のフラグメント内部の断片を埋め込むことができます。これは、動的で再利用可能なUIコンポーネントを動的で再利用可能なUIコンポーネントに配置するさまざまな状況で役立ちます。たとえば、ViewPagerを使用して左右にスワイプして画面スペースの大部分を消費するフラグメントを作成すると、各フラグメントページにフラグメントを挿入できるようになりました。

いくつかのキーがここにありますgetChildFragmentManager()

関連する問題