Ich bin der vogella tutoria l über Multi-Panel-Entwicklung in Android folgen.Überprüfen, ob Fragment existiert
Jetzt würde ich gerne prüfen, ob ein Detailfragment vorhanden ist (Mehrfensterlayout aktiviert), um es zu entfernen und es erneut mit neuen Daten hinzuzufügen. Ich brauche das, um die Detailansicht zu aktualisieren, wenn der Benutzer etwas im Hauptfragment auswählt.
Wie bereits angedeutet im Tutorial mir wie das für das Fragment bin Überprüfung:
ReviewMaschineFragment fragment = (ReviewMaschineFragment) getFragmentManager().
findFragmentById(R.id.detailreviewcontainer);
if (fragment == null || ! fragment.isInLayout()) {
Log.i("Detail Fragment", "Start new activity");
}
else {
Log.i("Detail Fragment", "Update...");
}
Mein Problem ist, dass es immer falsch bekommt, auch wenn das Fragment existiert. Warum wird das Fragment nicht als vorhanden erkannt, wenn es im Layout mit mehreren Fenstern vorhanden ist?
Ich füge meine Fragmente wie das an das Layout:
setContentView(R.layout.activity_main);
toolbar = (Toolbar) findViewById(R.id.toolbar_main);
setSupportActionBar(toolbar);
FragmentManager fm = getSupportFragmentManager();
FragmentTransaction ft = fm.beginTransaction();
ft.add(R.id.maschinelistcontainer, new MaschineFragment());
if(getResources().getBoolean(R.bool.dual_pane)){
ft.add(R.id.detailreviewcontainer, new ReviewMaschineFragment());
}
ft.commit();
Die Tablette Layout-Datei:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
>
<include
android:id="@+id/toolbar_main"
layout="@layout/toolbar"
></include>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:weightSum="9"
android:orientation="horizontal" >
<FrameLayout
android:id="@+id/maschinelistcontainer"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="3"
/>
<FrameLayout
android:id="@+id/detailreviewcontainer"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="6"
/>
</LinearLayout>
</LinearLayout>
Versuchen fragment.isVisible() für die Unterstützung v4 Fragment –