In meinem Fragment möchte ich nur meine Menu/MenuItems in meiner Symbolleiste im Querformat anzeigen. Wenn ich die Ausrichtung ändere, bemerke ich, dass onCreateOptionsMenu
und onPrepareOptionsMenu
nicht aufgerufen wird.onCreateOptionsMenu und onPrepareOptionsMenu bei Orientierungsänderung nicht aufgerufen
Mit anderen Worten, meine Landschaft Layout mit meinen Menüpunkten funktioniert nur, wenn ich im Landschaftsmodus starten , aber nicht, wenn ich versuche zu Änderung in dem Querformat (stürzt ab, wenn von Hoch- auf Querformat zu ändern).
public class MyFragment extends Fragment
{
private int orientation;
@Override
public void onCreate(Bundle savedInstanceState)
{
orientation = getResources().getConfiguration().orientation;
if (orientation == Configuration.ORIENTATION_LANDSCAPE)
setHasOptionsMenu(true);
super.onCreate(savedInstanceState);
}
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater)
{
if (orientation == Configuration.ORIENTATION_LANDSCAPE)
inflater.inflate(R.menu.my_menu, menu);
super.onCreateOptionsMenu(menu, inflater);
}
@Override
public void onPrepareOptionsMenu(Menu menu)
{
initializeLandscapeMenuViews(menu);
super.onPrepareOptionsMenu(menu);
}
@Override
public void onViewCreated(View view, Bundle savedInstanceState)
{
super.onViewCreated(view, savedInstanceState);
if (orientation == Configuration.ORIENTATION_PORTRAIT)
initializePortraitMenuViews(view);
}
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
return inflater.inflate(R.layout.my_layout, container, false);
}
// other code not shown
}
Der Absturz tritt auf, wenn ich versuche, die Ansichten zugreifen, die ich in initializeLandscapeMenuViews()
initialisiert werden, da onPrepareOptionsMenu()
nie genannt wird.
überprüfte ich die Reihenfolge der Anrufe Verwendung des Debuggers:
Beginnend im Landschaftsmodus
onCreate
onViewCreated
onCreateOptionsMenu
onPrepareOptionsMenu
dann, Orientierungsänderung zu Portrait
onCreate
onViewCreated
dann, Orientierungsänderung zurück zu Landschaft
onCreate
onViewCreated
onCreateOptionsMenu
und onPrepareOptionsMenu
nicht
Was bin ich? (Jede Hilfe wird geschätzt).
Hallo @Idanatz, ich habe es tatsächlich versucht, aber diese Rückrufe werden nicht aufgerufen :( – Vinnie