Wie kann ich das umsetzen FragmentManager und FragmentTransaction zu ersetzen, die nur ein einziges fragment?
Ich habe eine Aktivität mit 3 Fragmente; header; a body; eine Fußzeile (gleichen Punkt, wie in HTML). Die bodyfragment enthält drei Schaltflächen, mit denen jeder zu ersetzen ist, die mittlere fragment (Körper; selbst) mit einem anderen, aber ich kann nicht herausfinden, wie die Arbeit der FragmentManager und FragmentTransition hier. Ich kann nicht scheinen zu finden, die Kohärenz in anderen Völkern Fragen auf, die hier mit Bezug auf die Art und Weise, andere setzen Ihre Fragmente. Es scheint, jeder hat seine eigenen Methoden, oder einfach nicht den vollständigen code in Ihre threads.
MainActivity.java
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.requestWindowFeature(Window.FEATURE_NO_TITLE);
this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.test_frag);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
//Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
TestFragment.java
public class TestFragment extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
return inflater.inflate(R.layout.test_frag, container, false);
}
}
BodyFragment.java
public class BodyFragment extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
return inflater.inflate(R.layout.body_frag, container, false);
}
}
Fragment in XML -
<fragment
android:id="@+id/bodyfragment"
android:name="com.example.test.BodyFragment"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
tools:layout="@layout/body_frag" />
BodyFragment layout in XML (Schaltfläche x3)
<Button
android:id="@+id/bsettings"
android:layout_width="130dp"
android:layout_height="40dp"
android:layout_alignBaseline="@+id/bgames"
android:layout_alignBottom="@+id/bgames"
android:layout_toRightOf="@+id/bgames"
android:text="SETTINGS" />
Das ist das tutorial ich Folge, eigentlich. Das fragment Beispiele gibt, unterscheiden sich von der Art, wie Sie lehren, wie man FragmentManager und FragmentTransactions. Ich weiß nicht, ob ich sein sollte ruft FragmentManager von der Aktivität oder der BodyFragment. Ich weiß auch nicht, ob ich sollte den Aufruf der Transaktion nur auf dem bodyfragment oder die Aktivität selbst. Die Dokumentation ist sehr schwer zu Lesen.
Sie sollten diesen code in die Tätigkeit, zum Beispiel in onCreate. In der Transaktion.replace(R. id.fragment_container, newFragment), fragment_container ist die id des Containers für das fragment in Ihrer Tätigkeit layout, newFragment ist das Teilstück, das Sie möchten, setzen Sie in den container.
InformationsquelleAutor Carl | 2013-12-05
Du musst angemeldet sein, um einen Kommentar abzugeben.
Verwenden Sie den FragmentManager wie diese:
Diesem code ersetzen Sie das Fragment, das sich in der Ansicht mit der id R. id.bodyfragment mit einer neuen Instanz von einem anderen Fragment.
EDIT:
Erstellen Sie eine neue Instanz von einem anderen Fragment einer statischen factory-Methode verwendet werden soll. Sie würde setzen Sie in Ihrem Fragment so:
Platzieren Sie diese zum Beispiel in der onClickListener auf einen Knopf, oder wo auch immer Sie wollen, ändern Sie das fragment. Zum erstellen neuer Instanzen von Fragmenten, die statische factory-Methoden verwendet werden soll, und das ist, was newInstance() ist in meinem Beispiel. Ich passe meine Antwort zu klären.
InformationsquelleAutor Xaver Kapeller