- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
这是负责将 fragment 添加到后台堆栈的函数:
public void populateContent(File f)
{
ContentFragment cf = new ContentFragment(ctx, ac, this);
FragmentTransaction transaction = ac.getSupportFragmentManager().beginTransaction();;
cf.updateView(f);
transaction.replace(R.id.contentFragment, cf);
transaction.addToBackStack(null);
transaction.commit();
}
当我点击后退按钮时,最后一个 fragment 没有加载(没有任何反应)。
知道是什么原因造成的吗?
编辑:FragmentManager 日志。
在我看来,好像我的应用程序将第二个 View 保存了两次,而不是先保存第一个 View ,然后再保存第二个 View 。
最佳答案
似乎在 fragment 事务上调用 addToBackStack() 是不够的,我们必须处理自己按下后退按钮时后退堆栈的弹出。我将此添加到我的 Activity 中,它按预期工作:
@Override
public void onBackPressed() {
if (getFragmentManager().getBackStackEntryCount() > 0 ){
getFragmentManager().popBackStack();
} else {
super.onBackPressed();
}
}
关于Android - addToBackStack() 不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14805478/
在 Android 上的 FragmentTransaction 项中 docs ,说明方法replace()与调用方法remove()是一样的,对当前view中添加的所有fragment调用方法添加
我正在尝试关闭 fragment 并希望通过在我的 fragment 实现中使用 addToBackStack 来恢复主要 Activity ,但它不起作用。后退按钮正在关闭应用程序。 我使用的 fr
在我的应用程序中,我正在处理一个显示不同 fragment 的 Activity 。该 Activity 还具有抽屉布局。 activity_main.xml: 所以现在我试图通过替换它们
我就是不明白。 我有一个 Activity A、一个 Fragment F1 和一个 Fragment F2。当 Activity 启动时,它会通过 F1 打开 getFragmentManager(
我的 MainActivity 管理两个一起工作的 fragment 。我的方法之一是我的 ListFragment 上的监听器接口(interface),MainActivity 负责切换 frag
这是负责将 fragment 添加到后台堆栈的函数: public void populateContent(File f) { ContentFragment cf = new Conten
有什么办法可以让这个更干净一点吗?我知道当 query = ""时我位于主菜单,因此返回应该关闭应用程序。 if (query == "") { fragmen
当我们在 fragment 中使用 addToBackStack() 时如何设置动画? 我的旧片段需要保留,新片段应该将旧片段与动画重叠并显示给用户。 我尝试了 setCustomAnimation(
按后退按钮后,单击按钮时显示的新 fragment 不会关闭,而是关闭整个应用程序。该按钮位于三个选项卡之一内。 mainActivity.java、HeroesFragment(具有三个选项卡的 f
我被它弄糊涂了。 我有一个 Activity A,Fragment F1 和 F2,当单击一个按钮时,我想隐藏 F1 并将 F2 添加到同一位置,然后可以通过后退按钮返回到 F1。所以我做了如下。
这是我的主要 Activity 。我关注了this guide关于 fragment 正确。当我单击“后退”按钮时,我的应用程序关闭而不是返回到 MainScreenFragment。为什么会发生这种
我有一个 FragmentActivity,它在启动时加载一个自定义 ListFragment,并在单击某项后用新 fragment 替换它。 在 fragment Activity 子类中: pub
每当我按下我的应用程序的后退按钮时,就会发生以下情况。 原创手机展示:FragA 点击 FragA 上的 View 后手机展示:FragB 点击返回按钮后手机显示: fragment A fragme
我正在研究 Fragments,在区分 FragmentTransaction.replace(id, fragment, tag) 和 FragmentTransaction.addToBackSt
当我按下“后退”按钮(在模拟器和 Galaxy S2 上测试)时,无论提交了多少 fragment 事务,应用程序都会关闭:( 好吧,以防万一,我会发布我的 fragment 事务的实现,尽管我怀疑它
我的应用程序有选项卡,在一个选项卡中,我有一个带有 ListView 的 fragment 。单击列表中的项目时,我尝试使用以下内容在该选项卡下初始化一个新 fragment : private cl
我在使用 FragmentTransaction addToBackStack 时发现了一个奇怪的行为。每当手机旋转时,它都会重新创建堆栈中的所有 fragment 。为什么要重新创建这些 fragm
我在抽屉导航 Activity 中创建了一个选项卡式 Activity 。我已将抽屉导航内的列表与各个 fragment 链接起来。我还在 ft.commit() 之前使用了命令 ft.addToBa
我没有找到解决问题的方法。 我有几个 fragment (动态创建),但我的后退按钮根本不起作用,按下它将关闭应用程序,无论 fragment 是“Activity 的”。 @Override pub
具有添加 fragment 和稍后的 replace() fragment 的流程。所有 fragment 都是动态添加的,但不是所有 fragment 都调用addToBackStack()。 ge
我是一名优秀的程序员,十分优秀!