用片段替换片段,没有任何反应

时间:2017-06-30 17:03:53

标签: android android-fragments

我想通过点击imageview从fragment5转到fragment6。

这是我的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>

这是我的fragment5类,我在其中声明了一个名为forward5的Imageview。所以,如果我点击这个Imageview,我希望该应用程序显示fragment6的布局。但如果我点击Imageview,没有任何反应。我不知道为什么。有人可以帮帮我吗?

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

}

1 个答案:

答案 0 :(得分:-1)

因为你设置容器的高度是0dp,实际上你已经附加了fragment6,但是你无法看到它。

您可以修改容器的高度

.outer