2013-08-17 2 views
0

У меня есть деятельность с файлом макета следующим образом:Как прагматично добавить динамическое количество фрагментов деятельности

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
android:orientation="vertical" > 

<ScrollView 
    android:id="@+id/scrollView1" 
    android:layout_width="match_parent" 
    android:layout_height="0dp" 
    android:layout_weight="2" 
    android:fillViewport="true" 
    android:gravity="top" > 

    <LinearLayout 
     android:id="@+id/foodItemActvity_linearLayout_fragments" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:orientation="vertical" > 

    //>>>> Fragments to go here 

    </LinearLayout> 
</ScrollView> 

<LinearLayout 
    android:id="@+id/linearLayout1" 
    android:layout_width="match_parent" 
    android:layout_height="0dp" 
    android:layout_weight="0.35" 
    android:gravity="bottom" 
    android:orientation="horizontal" > 

    <Button 
     android:id="@+id/button1" 
     android:layout_width="0dp" 
     android:layout_height="match_parent" 
     android:layout_weight="1" 
     android:onClick="orderFoodItemClicked" 
     android:text="Order this Item Now" /> 

    <Button 
     android:id="@+id/button2" 
     android:layout_width="0dp" 
     android:layout_height="match_parent" 
     android:layout_weight="1" 
     android:onClick="backToMenuItemClicked" 
     android:text="Back To Menu" /> 
</LinearLayout> 

Я тогда 5 фрагментов уже закодированных каждый со своими файлами верстки и классы, которые сейчас неактуальны. говорят, что они называют для этого примера:

fragment1.java fragment2.java fragment3.java

Я хочу знать, как я могу динамически добавлять фрагменты в линейной компоновке, как указано выше. Из моих исследований мне кажется, что мне нужен менеджер фрагментов и LayoutInflater, но я не уверен, как это сделать.

До сих пор у меня есть это:

LinearLayout fragmentsLayout = (LinearLayout) findViewById(R.id.foodItemActvity_linearLayout_fragments); 

    for(int i=0; i < noOfFragments;i++){ 
     //Add fragment to fragmentsLayout 
    } 

Теперь я просто не уверен, о том, как идти о добавлении определенных фрагментов я хочу?

EDIT: И как указать детали, такие как параметры макета для фрагмента?

ответ

1
FragmentTransaction ft = getSupportFragmentManager().beginTransaction(); 
for(int i=0; i < noOfFragments;i++){ 
     ft.add(R.id.foodItemActvity_linearLayout_fragments, fragments[i], "fragment tag" + i); 
} 
ft.commit(); 
+0

IT компилируется, но он не отображает ни одного из фрагментов: \t 'ImageFragment fb = new ImageFragment(); \t \t \t ft.add (R.id.foodItemActvity_linearLayout_fragments, fb, "fragment" + fragCount); \t \t fragCount ++; \t \t ft.commit(); ' – Zapnologica

+0

@ Zapnologica Что делать, если вы добавляете только один фрагмент? Вы уверены, что фрагменты раздуваются правильно? –

+0

Они отображаются, если я вручную помещал их в xml-файл? – Zapnologica