gpt4 book ai didi

java - 离开 fragment 后更新 ActionBar 标题

转载 作者:搜寻专家 更新时间:2023-11-01 08:00:18 25 4
gpt4 key购买 nike

当我的 MainActivity 启动时,我的 ActionBar 会显示应用程序标题。一旦您通过抽屉导航导航到一个 fragment ,标题就会更改以匹配该 fragment ......但是,一旦您使用后退按钮导航回来,标题将保持不变并且仍然具有 fragment 的标题。我希望将其改回应用程序标题。

我曾尝试在 MainActivity.java 中使用 onResume() 方法,但它似乎在您离开 fragment 后不会被调用。

@Override
public void onResume() {
super.onResume();
// Set title
getActionBar().setTitle("FuelR");
invalidateOptionsMenu();
}

有谁知道将标题改回 app_name 的最佳方法是什么?

谢谢

最佳答案

确实销毁Activity中的Fragment并不意味着Activity会调用onResume,首先你必须注意到Fragment存在于Activity生命上下文中,Fragment不会改变它的生命周期,只是它的一部分,您可以在 fragment 中获取对 Activity 的引用并将标题设置回之前的状态,如下所示:

//In Fragment
@Override
public void onDestroyView() {
super.onDestroyView();
((Cast If Necessary)getActivity()).getActionBar().setTitle("Previous Title");
}

或者更 OOP 的方法是,创建一个声明方法 setTitlePreviousText 的接口(interface),您在 Activity 类中实现该接口(interface),您可以从 fragment 中执行此操作:

    //In Fragment
@Override
public void onDestroyView() {
super.onDestroyView();
Activity act = getActivity()
if(act instanceof SetPreviousTextInterface){
//setTitlePreviousText will be called giving you the chance to just change it back...
((SetPreviousTextInterface)act).setTitlePreviousText();
}
}

这将是接口(interface)文件:

public interface SetPreviousTextInterface{
public void setTitlePreviousText();
}

问候!

关于java - 离开 fragment 后更新 ActionBar 标题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22178322/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com