android - 如何从 ViewPager 片段中打开另一个片段?
问题描述
我按照本教程在滑动视图(ViewPager)中构建了一个包含三个片段的应用程序。
https://c1ctech.com/android-viewpager-example-to-create-sliding-screens/
该应用程序已成功构建。然后我在 FragmentOne 中添加了一个按钮。并且还使用 fragment_four.xml 布局文件创建了另一个名为 FragmentFour 的片段。
现在我想通过我之前创建的按钮通过 onClickListener 将 FragmentFour 与 FragmentOne 链接起来。在 FragmentOne 中,该按钮将被单击,它将启动 FragmentFour。为了实现这一点,在 onClickListener 我添加了这些代码-
FragmentFour fragFour = new FragmentFour();
FragmentManager fragmentManager = getChildFragmentManager();
FragmentTransaction transaction = fragmentManager.beginTransaction();
transaction.replace(R.id.main_frameLayout, fragFour);
transaction.addToBackStack(null);
transaction.commit();
但是在运行应用程序之后,当我从 FragmentOne 内部单击该按钮时,FragmentFour 的布局与 FragmentOne 的布局重叠。并且 FragmentTwo 和 FragmentThree 可以通过从 FragmentFour 滑动访问,但我不想要这个。
如果这里有什么问题,请帮助我。
解决方案
您的代码正在FragmentOne
替换FragmentFour
为ViewPager
:
transaction.replace(R.id.fragment_one, fragFour);
这导致 ViewPager 带有FragmentFour
,FragmentTwo
和FragmentThree
好像你想开始一个新Activity
的 for FragmentFour
。从您的onClick
处理程序中FragmentOne
,开始一个新的活动,如下所示:
getActivity().startActivity(new Intent(context, FragmentFourActivity.class));
FragmentFourActivity
是一个Android Activity(例如AppCompatActivity
),其布局包含FragmentFour。如果不确定如何操作,请访问https://developer.android.com/training/basics/firstapp/starting-activity 。
推荐阅读
- javascript - 在 PHP 中使用 innerHTML 加载 TinyMCE
- linker - xv6 中的 ELF 标头是什么?
- dialogflow-es - 在对话流中获得多个意图匹配
- python - 用 K-Means 聚类并重塑为彩色图像
- python - Python:无法导入名称 ss
- node.js - NodeJs/React - Multer 上传多个文件
- oracle11g - Oracle DBlink 能够访问除 1 个表之外的所有表
- selenium-webdriver - 如何手动或通过使用 selenium 的自动化处理验证码图像?
- .htaccess - htaccess 有什么问题?
- python - Windows 中 Python3.7 的主管(或类似工具)