- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我是 fragment 的新手。我有一个扩展 FragmentActivity 并使用 ViewPager 在 fragment 之间滑动的 Activity 。
在其中一个 fragment 中,我想启动一个位于 View 寻呼机内容“外部”的新 fragment 。是否可以添加这样的 fragment ,或者我是否需要使用该 fragment 启动新 Activity 。
现在我让它启动一个新的 Activity,但是速度很慢。
Activity A
fragment A
fragment B
fragment C
Activity B
fragment D
fragment A
因此 fragment A 可以启动 Activity B 以到达 fragment D,但理想情况下,如果我可以在 Activity A 中注入(inject) fragment D 会很酷
希望这是有道理的。
最佳答案
是的,你可以,但我强烈建议你避免它,除非你有充分的理由这样做。
ViewPager(我假设)托管在您的 Activity 中。 ViewPager 从其适配器获取其 View 。 (一个 FragmentStateAdapter 或类似的)。因此,您可以告诉 Activity 更改其布局(和/或隐藏 Viewpager 并显示另一个 FrameLayout),或者您可以简单地启动另一个包含单个 fragment 的 Activity。这也可以。
与 ViewPager/Adapter 打交道通常很复杂,您可能会浪费时间尝试使其正常工作。
另一方面,您可以将 fragment 添加到 ViewPager 的适配器并使用适配器的 getType 返回不同类型的 fragment 。
所以你可以这样做(伪代码):
mPagerAdapter.addFragmentDToTheDataAtPositionZero(); //longFancyName ;)
mPagerAdapter.notifyDataSetChanged();
mViewPager.setCurrentItem(0, false);
这会将 fragment D 添加到 viewpager 的“顶部”并将切换到它。
然后您的适配器必须使用接口(interface)来确定必须实例化哪种类型的 fragment ......
适配器的 getItem 看起来像……(同样是伪代码)
@Override
public Fragment getItem(final int i) {
final FragmentTypeInterface f = yourData.get(i);
if (f.isD()) {
return FragmentD.newInstance();
} else {
return OtherFragment.newInstance();
}
}
等等……:)
关于android - 我可以在 viewpager 中的内容之外向 FragmentActivity 添加 fragment 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24644778/
我的设置 我正在使用 WSO2EI 6.4.0 版来托管我的 Rest API。 我的客户 --> WSO2EI --> 外部 SOAP 调用 我没有在 WSO2EI 和外部服务器之间设置任何相互身份
我是一名优秀的程序员,十分优秀!