android - 如何在单个 Activity 中显示第一个 fragment 的第二个 fragment

标签 android android-layout android-widget android-fragments android-fragmentactivity

我正在开发一个仅适用于平板电脑并使用 android 4.0 的简单 android 应用程序。我的应用程序有如下主屏幕:

enter image description here

主要 Activity 的 Oncreate() 我使用以下代码在 main.xml 中添加 fragment A:

FragmentTransaction ft = getFragmentManager().beginTransaction();
Fragment imageFragment = new ImageFragment();
ft.replace(R.id.fragment_container, imageFragment);
ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE);
ft.addToBackStack(null);
ft.commit();

这个 fragment A 只有一个可点击的 ImageView 。现在我希望当用户单击 ImageView 时,另一个 fragment ( fragment B)应该调用并替换 ImageView 。 Fragment B 有一个播放视频的 VideoView。

所以我的第二个屏幕应该如下所示:

enter image description here

我的问题是我没有得到“如何在主屏幕 Activity 中从第一个 fragment 调用第二个 fragment ?”

我可以使用不同的 Activity ,但我不想这样做,只想使用 fragment 来运行它。

请指导我。

最佳答案

这是最简单的方法:

1) 在 YourActivity 中创建一个方法:

public void goToSecondFragment(){}
    FragmentTransaction ft = getFragmentManager().beginTransaction();
    Fragment secondFragment = new SecondFragment();
    ft.replace(R.id.fragment_container, secondFragment);
    ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE);
    ft.addToBackStack(null);
    ft.commit();
}

2) 在你的第一个 fragment 中,当你想替换它时,调用:

YourActivity activity = (YourActivity) getActivity();
activity.goToSecondFragment();

关于android - 如何在单个 Activity 中显示第一个 fragment 的第二个 fragment ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15897501/

相关文章:

android - HORIZONTAL LinearLayout 未居中,我设置为 :gravity to "center"

java - 无法在 Cordova/Phonegap 中编辑自定义 java 插件

android - 布局文件存在但不在布局文件夹中。我在哪里可以找到布局文件?

android - 在 android 侧边栏创建中获取错误并修复此问题

android - 当手机进入休眠模式时关闭 AlarmManager

android - 如何创建单表虽然类包含嵌套类?

java - 动态 ImageView 。指定的 child 已经有 parent

android - 如何以编程方式检测android中可用的底部软导航栏?

android - 调用 onClick 时更改 ImageButton 的图像

java - getApplicationContext() 与 AppWidgetProvider