фрагмент placehoder в макете - PullRequest
19 голосов
/ 07 марта 2012

Предположим, у меня есть несколько фрагментов :

public class FirstFragment extends Fragment { ... }

public class SecondFragment extends Fragment { ... }

public class ThirdFragment extends Fragment { ... }

У меня также есть основное действие , его содержание (main.xml):

<LinearLayout ...>

  <!-- How to have a fragment placehold without specify which fragment show here? -->
  <fragment>

</LinearLayout>

У меня вопрос в приведенном выше файле макета, как я могу определить заполнитель фрагмента без указания, какой фрагмент показывать здесь, а затем в Java-коде "Моя активность" , надутьправильный фрагмент для заполнителя?

Возможно ли это и как это сделать?

1 Ответ

33 голосов
/ 07 марта 2012

Это возможно.В вашем main.xml определите местозаполнитель для фрагмента, назовем его «frag_placeholder»:

<LinearLayout ...>
 <FrameLayout android:id="@+id/fragment_placeholder" android:layout_weight="1"
        android:layout_width="0px"
        android:layout_height="match_parent" />
</LinearLayout>

В вашей деятельности, когда вы хотите загрузить свой фрагмент:

YourFragment fragment = new YourFragment();
FragmentTransaction ft = getFragmentManager().beginTransaction();
ft.replace(R.id.fragment_placeholder, fragment);
ft.commit();
...