В двух словах ответ на ваш вопрос заключается в том, чтобы уведомить об активности вашего хоста, а затем выполнить операцию вашего хоста, заменив ваш текущий контейнер с помощью FragmentManager.
Один из подходов состоит в том, чтобы сделать интерфейс в вашем первом фрагменте, зарегистрировать/прослушать (реализовать) ваш хост-активность в этом интерфейсе, а затем заставить FragmentManager заменить содержимое контейнера вторым фрагментом на обратном вызове слушателя.
Я не уверен, что учебник, но вот мой отрывок: Первый фрагмент
public class First extends Fragment{
private static onMySignalListener listener;
//call this function from whatever you like i.e button onClickListener
public void switchWindow() {
if(listener != null){
listener.onMySignal();
}
}
public interface onMySignalListener {
//customize this to your liking
//plain without argument
void onMySignal();
//with argument
void onMySignalWithNum(int mNum);
}
public static void setOnMySignalListener(onMySignalListener listener) {
First.listener = listener;
}}
Хост активность
public class HostActivity extends FragmentActivity implements onMySignalListener{
private final String ADD_TAG_IF_NECESSARY = "mTag";
@Override
public void onCreate(Bundle ssi) {
setContentLayout(R.layout.main);
FirstFragment.setOnMySignalListener(this);
}
@Override
public void onMySignal() {
//if you're using compat library
FragmentManager manager = getSupportFragmentManager();
FragmentTransaction transaction = manager.beginTransaction();
//initialize your second fragment
sfragment = SecondFragment.newInstance(null);
//replace your current container being most of the time as FrameLayout
transaction.replace(R.id.container, fragment, ADD_TAG_IF_NECESSARY);
transaction.commit();
}
@Override
public void onMySignalWithNum(int mNum) {
//you can do the same like the above probably with your own customization
}}
Это всего лишь пример того, как вы бы реализовать интерфейс, любезно убирать его самостоятельно. И, пожалуйста, обратите внимание, что это неэффективно, если у вас есть много фрагментов, которые хотят уведомить вашу активность о чем-то. это приведет к тому, что вы будете внедрять различного слушателя в свою деятельность.
Но это учебное пособие совершенно справедливо, если вы только посмотрите на макет портрета. – Warpzit
@ Warpzit, но учебник попросит меня создать два действия в макете портрета, каждый для каждого фрагмента, не так ли? –