2015-06-13 4 views
0

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

Я попытался это:

FragmentManager fragmentManager = getFragmentManager(); 
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction(); 

Intent intent = new Intent(this,MenuFragmentActivity.class); 
MenuFragment newFragment = new MenuFragment(); 
fragmentTransaction.add(R.id.menuFragment,newFragment); 
newFragment.startActivity(intent); 
fragmentTransaction.commit(); 

Но это начинает свою деятельность в новом окне, а не в ограниченном фрагменте?

ответ

1

Поведение, которое вы видите, является правильным.

Для целей макета мероприятия не могут быть «детьми» фрагментов. Это наоборот: фрагменты - это дети деятельности. Итак, в основном, то, что вы пытаетесь сделать, не будет работать.

Вы должны прочитать полный текст Fragments guide, если вы еще этого не сделали. Вот соответствующая цитата о макетах:

При добавлении фрагмента в качестве части макета деятельности, он живет в ViewGroup внутри иерархии видов своей деятельности и фрагмент определяет свой собственный макет представления. Вы можете вставить фрагмент в свой макет деятельности , объявив фрагмент в макете активности, как элемент <fragment>, или из вашего кода приложения, добавив в существующую ViewGroup.

Вместо запуска нового действия попробуйте просто загрузить другой фрагмент в макете исходного фрагмента.