Ich habe jetzt 2 Fragment, ein Fragment Griff Portrait-Modus dann ein anderes Handle Landscape-Modus. Aber das Problem ist, dass wenn Sie von Hochformat zu Querformat dann zurück zu Hochformat drehen. Es wird nicht dasselbe angezeigt, das im ersten Porträtmodus angezeigt wird. Gibt es einen Code, der dieses Problem lösen kann?Wie wird die Orientierungsänderung mithilfe von Fragment behandelt?
Dieser Code ist im Inneren des Fragmentes Halter:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.frag_holder);
FragmentManager fm = getSupportFragmentManager();
final Fragment fragment = Frag.newInstance(); //Portrait layout
final Fragment fragment2 = Frag2.newInstance(); //Landscape layout
int orientation = getResources().getConfiguration().orientation; //check whether is it portrait or landscape
if(orientation == Configuration.ORIENTATION_PORTRAIT){
Fragment fragTAG = fm.findFragmentByTag(TAG_P);
if(fragTAG == null){
Log.i("test","test");
fm.beginTransaction()
.replace(R.id.fragPlaceHolder, fragment, TAG_P)
.commit(); //Portrait
}
else{
fm.beginTransaction().replace(R.id.fragPlaceHolder,fragTAG).commit();
}
}
if(orientation == Configuration.ORIENTATION_LANDSCAPE){
Fragment fragTAG = fm.findFragmentByTag(TAG_L);
if(fragTAG == null){
fm.beginTransaction()
.replace(R.id.fragPlaceHolder, fragment2, TAG_L)
.commit(); //Landscape
}
else{
fm.beginTransaction().replace(R.id.fragPlaceHolder,fragTAG).commit();
}
}
}
}
Sie Ihre gespeicherten bearbeiten Erhalten Sie müssen den Code schreiben, das Problem verursacht zuerst. – jaibatrik
Die einzige echte Lösung für Ihr Problem: Sie sollten nicht verschiedene Fragmente für unterschiedliche Orientierungen haben. So soll es auf Android nicht funktionieren. –
@Xaver Kapeller dann gibt es andere Möglichkeiten, es zu tun, mit dem gleichen Ergebnis herauskommen. Ich möchte nur das gleiche auf beiden Bildern zeigen, auch wenn Sie drehen. –