Ich möchte von Fragment5 zu Fragment6 gehen, indem Sie auf Imageview.Ersetzen Fragment mit Fragment, passiert nichts
Hier ist meine fragment5 xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"
android:theme="@style/ThemeOverlay.AppCompat.ActionBar"/>
<TextView
android:id="@+id/textfrag5label"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="header" />
<TextView
android:id="@+id/textfrag5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="39dp"
android:textStyle="bold"
android:text="foo "
android:layout_below="@+id/toolbar"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true" />
<ImageView
android:id="@+id/forwardfrag5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/textfrag5label"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:layout_marginEnd="23dp"
android:layout_marginRight="23dp"
app:srcCompat="@drawable/ic_arrow_forward_black_24dp"
android:onClick="clickEvent"/>
<FrameLayout
android:id="@+id/show_fragment"
android:layout_width="match_parent"
android:layout_height="0dp">
</FrameLayout>
</RelativeLayout>
Und das ist meine fragment5 Klasse, in der ich ein Imageview erklärt haben, genannt forward5. Also, wenn ich auf diesen Imageview klicke, möchte ich, dass die App das Layout von fragment6 anzeigt. Aber wenn ich auf den Imageview klicke, passiert nichts. Ich weiß nicht warum. Kann mir bitte jemand helfen?
public class Fragment5 extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
ViewGroup rootView = (ViewGroup) inflater.inflate(
R.layout.fragmentdescrip5, container, false);
Toolbar toolbar = (Toolbar) rootView.findViewById(R.id.toolbar);
ImageView forward5 = (ImageView) rootView.findViewById(R.id.forwardfrag5);
toolbar.setNavigationIcon(R.drawable.ic_keyboard_backspace_black_24dp);
toolbar.setNavigationOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
getActivity().onBackPressed();
} // this is for going back, e.g from fragment5 to fragment 4, this works
});
forward5.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v) {
final FragmentTransaction ft = getFragmentManager().beginTransaction();
ft.replace(R.id.show_fragment, new Fragment6(), "NewFragmentTag");
ft.commit();
}
});
return rootView;
}
}
Sie Fragment selbst zu ersetzen? –
Nein, wenn ich in Fragment5 bin, möchte ich zu Fragment 6 gehen, indem ich auf die Bildansicht-Schaltfläche klicke, die ein "Vorwärts-Symbol" als Icon hat. – Blnpwr
immer noch sieht dein Code nicht gut aus. Zuerst scheinen Sie onclicklistener anstelle der Bildansicht an die gesamte Fragmentierung anzuhängen, dann befindet sich die Transaktion auch in diesem Fragment. es sollte in den übergeordneten Container verschoben werden (dh übergeordnete Aktivität) und das einzige, was fragment5 beim Klicken tun sollte, ist Eltern zu sagen, dass geklickt wurde –