0

私はAndroidで作業しているプロジェクトがあります。私は主な活動の中で画面全体をカバーする1つの大きな断片を持っています。通常、私はそれぞれのui画面のために私はちょうど置換コマンドを実行し、各画面の断片を交換するユーザーを使用します。Android:tablayout/viewpagerフラグメントまたはアクティビティ内のフラグメント

現在、私は3つの異なるフラグメントを持つtablayout/viewpagerコンボを配置したいのですが、どのタブがプッシュされるかによって、新しいフラグメントが表示されます。この問題は、別のフラグメントの中に3つの異なるフラグメントを示すタブレイアウトであることです。これは可能ですか、または推奨ですか?私はそれを新しい活動に変えなければならないかどうかを判断します。ナビゲーションドロワは正常に動作し、私がアクティビティを読み込んだときに閉じるか、そこにも問題が発生するでしょうか。あなたの助けのための

おかげで

+0

私は、より多くの断片を保持しているViewPager断片でプロジェクトを行っています。確かに可能ですが、これらのビューにデータを渡している場合は、コードを管理するのが難しいかもしれません。 –

答えて

2

あなたは同じのための公式ドキュメントの下にチェックすることができるか、私のデモスニペットを使用することができます。メインの断片のタブを処理するために、これを行うにしてください https://developer.android.com/reference/android/support/v4/app/FragmentTabHost.html

を:

public class MainFragment extends Fragment { 
private FragmentTabHost mTabHost; 

//Mandatory Constructor 
public MainFragment() { 
} 

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

} 

public View onCreateView(LayoutInflater inflater, ViewGroup container, 
     Bundle savedInstanceState) { 

    View rootView = inflater.inflate(R.layout.fragment_tabs,container, false); 


    mTabHost = (FragmentTabHost)rootView.findViewById(android.R.id.tabhost); 
    mTabHost.setup(getActivity(), getChildFragmentManager(), R.id.realtabcontent); 

    mTabHost.addTab(mTabHost.newTabSpec("fragmentb").setIndicator("Fragment B"), 
      FragmentB.class, null); 
    mTabHost.addTab(mTabHost.newTabSpec("fragmentc").setIndicator("Fragment C"), 
      FragmentC.class, null); 
    mTabHost.addTab(mTabHost.newTabSpec("fragmentd").setIndicator("Fragment D"), 
      FragmentD.class, null); 


    return rootView; 
} 

}

このタブレイアウトでは、

<android.support.v4.app.FragmentTabHost 
xmlns:android="http://schemas.android.com/apk/res/android" 
android:id="@android:id/tabhost" 
android:layout_width="match_parent" 
android:layout_height="match_parent"> 

<LinearLayout 
    android:orientation="vertical" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <FrameLayout 
     android:id="@+id/realtabcontent" 
     android:layout_width="match_parent" 
     android:layout_height="0dp" 
     android:layout_weight="1"/> 

</LinearLayout> 

+1

アウェソムウェは完璧に感謝しました –

0

はい、viewPagerとTabLayoutは、それがメモリ内の異なるフラグメントを維持するのです。

あなたのメモリパフォーマンスには影響しませんので、3つのタブしかないので、pagerAdapterを使うことができます。

1つのフラグメントを他のタブに再利用できますが、3つのタブしかないので、パフォーマンスには影響しません。

はい、mainフラグメントの中にtabLayoutを置くことができます。メインフラグメントはあなたのアクティビティの一部です。他のコールバックを除いて、ホスティングアクティビティと同じライフサイクルに従います。

+0

ご回答いただきありがとうございます。私の質問ではありません。メインフラグメント内にtablayoutフラグメントがあるかどうかを確認しています。 –

+0

ええ、なぜ、あなたはメインの断片でそれを持つことができません。 – Ritesh

関連する問題