在 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
我的学校作业有一个 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 上调用 onClickgetActivity().onBackPressed();
您还可以查看来自 Android studio 的 Master 模板和详细信息 activity