W skrócie, odpowiedź na twoje pytanie polega na powiadomieniu aktywności hosta, a następnie aktywowaniu hosta przez zastąpienie bieżącego kontenera fragmentu za pomocą FragmentManager.
Jednym z podejść jest utworzenie interfejsu w pierwszym fragmencie, zarejestrowanie aktywności hosta/odsłuchania (narzędzia) w tym interfejsie, a następnie użycie FragmentManager do zastąpienia zawartości kontenera drugim fragmentem wywołania zwrotnego.
nie jestem pewien o tutorialu ale tutaj jest mój urywek: Pierwszy fragment
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;
}}
aktywny Host
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
}}
To jest tylko przykładem, w jaki sposób chcesz zaimplementować interfejs, uprzejmie uporządkuj to sam. Należy jednak zauważyć, że nie jest to skuteczne, jeśli masz dużo fragmentów, które chcą powiadomić o czymś na temat działania hosta. spowoduje to zaimplementowanie różnych słuchaczy w aktywności gospodarza.
Ale ten samouczek jest całkowicie poprawny, jeśli spojrzysz tylko na układ pionowy. – Warpzit
@ Warpzit, ale samouczek poprosił mnie o utworzenie dwóch działań w układzie portretu, z których każdy dla każdego fragmentu, prawda? –