【发布时间】:2015-04-09 23:16:29
【问题描述】:
我有一个ActionBarActivity(顺便说一下,它扩展了android.support.v4.app.FragmentActivity),我想在最顶层添加一个片段。这是我的代码:
FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
NotificationsFragment fragment = new NotificationsFragment();
ft.add(R.id.pager, fragment).commit();
地点:
-
NotificationsFragment扩展android.support.v4.app.Fragment -
R.id.pager是根视图的 id(即android.support.v4.view.ViewPager)
当上面的代码运行时,什么也没有发生。没有异常、崩溃或任何视觉变化。根本不值一提。我见过FragmentTransaction not doing anything 并且有一个建议告诉使用replace 而不是add,当我尝试这样做时,正在显示的寻呼机片段(记住,我的根视图是寻呼机)消失了。
我不知道发生了什么,而且我也是 Android 新手。我做错了什么?
注意:我在 ICS 中的最低 API 目标 (15),因此我不需要支持任何旧版本,因此任何涉及较新 API 的解决方案都是首选。
【问题讨论】:
-
你确定要让代码在当前状态下工作吗?因为对我来说,
ViewPager的使用有点非传统,它通常通过像here 这样的适配器填充片段。另一方面,ViewPager 仍然是ViewGroup,所以你 can make 最终是可行的...... -
@Android777 我实际上遵循了 android studio 的默认模板并创建了这个。
-
这很奇怪,但第一个答案就是解决方案。
-
您必须使用某种
PagerAdapter。就像ListView这样的视图需要某种Adapter来生成每个列表项,ViewPager需要Adapter来创建构成“页面”的每个项。 -
@Squonk 但我不希望此片段进入页面。它应该显示在所有内容之上。