2017-06-30 3 views
-1

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; 
} 

}

+0

Sie Fragment selbst zu ersetzen? –

+0

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

+0

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 –

Antwort

-1

, das ist, weil Sie Sie Containers Höhe eingestellt ist 0DP, In der Tat Sie fragment6 angeschlossen hatte, aber man kann es nicht sehen.

können Sie die Höhe des Behälters ändern

<FrameLayout 
    android:id="@+id/show_fragment" 
    android:layout_width="match_parent" 
    android:layout_height="0dp"><!--modify 0dp to some you need--> 

</FrameLayout> 
+0

Leider hat das nicht funktioniert. Ich bin immer noch in Fragment5. – Blnpwr

Verwandte Themen