在 ListFragment 和 Fragment 之间导航

Navigating between ListFragment and Fragment

我的学校作业有一个 activity,其中包含一个 ListFragment 和一个 Fragment。 MainActivity 创建 ListFragment,然后列表中的每个项目都应该打开只包含一张图片的常规 Fragment,然后当我单击图片时它应该返回到 ListFragment。

在所有情况下,我都使用此代码调用片段(当然针对特定情况进行了编辑):

    Fragment fragTwo = new FragmentTwo();

    FragmentManager fm = getFragmentManager();
    FragmentTransaction ft = fm.beginTransaction();
    ft.replace(R.id.fragment_place, fragTwo);
    ft.addToBackStack(null);
    ft.commit();

它可以调用片段,除了第二个片段将出现在 ListFragment 之上,并且当第二个片段打开时我仍然可以 select 列表中的内容。我是否需要在每次导航时都创建一个新的片段对象?我如何 disable/enable 来自它自己的 onclick 侦听器的片段?

main_activity.xml:

<?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" >
<fragment
    android:name="com.example.w0068332.fragmentstest.FragmentOne"
    android:id="@+id/fragment_place"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />

</LinearLayout>

1- 是的,您需要为每个项目创建一个片段。

                    Bundle arguments = new Bundle();
                    arguments.putInt(FragmentTwo.ARG_ITEM_ID,R.drawable_pic);
                    FragmentTwo fragment = new FragmentTwo();
                    fragment.setArguments(arguments);
                    getSupportFragmentManager().beginTransaction()
                            .replace(R.id.item_detail_container, fragment)
                            .commit();

我想你显示的是资源中的图片

2- 在显示第二个时禁止从 ListFragment 中进行选择。 在第二个片段的父布局中,您必须添加背景并使其可点击,如下所示:

android:background="@color/white"
android:clickable="true"

3- 要向后导航 ListFragment,请为 ImageView 添加点击侦听器,并在 Activity:

的 onBackPressed 上调用 onClick
getActivity().onBackPressed();

您还可以查看来自 Android studio 的 Master 模板和详细信息 activity