返回上一个片段后,应用标题保持不变

Asif-Ul伊斯兰教

我一直在开发一个Android应用程序,其中包括Android Studio中的默认导航抽屉等。在我的家庭片段中,我实现了CarViews,然后将这些cardview设置为OnClickListener以用传统过程替换该片段。在片段替换和新页面到来之后,我想更改操作栏标题。所以onCreateView(...)我尝试了

((AppCompatActivity)getActivity()).getSupportActionBar().setTitle("B");

有效。但是,按下硬件后退按钮返回到堆叠的片段后,标题仍保持更改且不再更改"Home"我尝试了其他方法。这是我的以下代码。提前致谢。

public class HomeFragment extends Fragment implements View.OnClickListener {
    public View onCreateView(@NonNull LayoutInflater inflater,
                             ViewGroup container, Bundle savedInstanceState) {
        View root = inflater.inflate(R.layout.fragment_home, container, false);
        Objects.requireNonNull(((AppCompatActivity) Objects.requireNonNull(getActivity())).getSupportActionBar()).setTitle("Home");

        CardView cardView1 = root.findViewById(R.id.doctor_on);
        CardView cardView2 = root.findViewById(R.id.ambulance_e);
        CardView cardView3 = root.findViewById(R.id.maintainance_s);

        cardView1.setOnClickListener(this);
        cardView2.setOnClickListener(this);
        cardView3.setOnClickListener(this);

        return root;
    }

    @Override
    public void onClick(View v) {
        int id = v.getId();
        switch (id) {
            case R.id.doctor_on:
                FragmentTransaction fragmentTransaction = Objects.requireNonNull(getActivity()).getSupportFragmentManager().beginTransaction();
                Fragment fragment1 = new doctors();
                fragmentTransaction.replace(R.id.container1, fragment1).addToBackStack(getString(R.string.menu_home)).commit();
                return;
            case R.id.ambulance_e:
                //Put Actions
                FragmentTransaction fragmentTransaction2 = Objects.requireNonNull(getActivity()).getSupportFragmentManager().beginTransaction();
                Fragment fragment2 = new ambulance();
                fragmentTransaction2.replace(R.id.container1, fragment2).addToBackStack(getString(R.string.menu_home)).commit();
                return;
            case R.id.maintainance_s:
                //Put Actions
                FragmentTransaction fragmentTransaction3 = Objects.requireNonNull(getActivity()).getSupportFragmentManager().beginTransaction();
                Fragment fragment3 = new maintanance();
                fragmentTransaction3.replace(R.id.container1, fragment3).addToBackStack(getString(R.string.menu_home)).commit();
                return;
        }
    }

    @Override
    public void onResume() {
        super.onResume();
        ((AppCompatActivity) getActivity()).getSupportActionBar().setTitle("Home");
    }
}

到下一个片段(我在其中更改标题栏并按返回按钮):

public class doctors extend Fragment{
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        // Inflate the layout for this fragment
        ((AppCompatActivity)getActivity()).getSupportActionBar().setTitle("B");
        View root = inflater.inflate(R.layout.fragment_doctors, container, false);

        return root;
    }

}
Asif-Ul伊斯兰教

并在“doctors片段...”中修复标题错误。

@Override
public void onDestroyView() {
    super.onDestroyView();
    Objects.requireNonNull(((AppCompatActivity) Objects.requireNonNull(getActivity()))
            .getSupportActionBar())
            .setTitle(getString(R.string.your_title_here));
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

选择日期后返回上一个片段

如何返回到后栈中的上一个片段?

android FID & GUID (UUID) 在更新同一个应用程序后保持不变?

按下不返回上一个片段

如何完成当前活动并返回上一个片段?

Android 通过 popBackStack 返回上一个片段

以编程方式返回Backstack中的上一个片段

返回Android中onBackPressed上的上一个片段

如何正确返回上一个片段?

从另一个片段打开一个片段总是保持前一个片段的标题

恢复上一个片段onBackPressed()?

当我们使用android中的backstack返回上一个片段时,上一个片段正在重新启动

一个onclick JS函数后如何返回上一个文本?

片段彼此重叠...上一个片段正在单击

SQL-当前季度数据必须被截断并重新加载,但上一个季度应保持不变

Android Fragments:切换beetwen片段并返回上一个状态

从上一个片段返回时如何避免活动空白

需要按两次以返回到上一个片段

使用导航组件和菜单项如何让向上按钮返回上一个片段而不是“主要”片段

在 tabLayout 中滑动到新片段并滑动回上一个片段时,应用程序崩溃

返回上一个输入Javascript

android返回上一个视图

iOS:返回上一个视图

Android:返回上一个活动

如何返回上一个活动?

如何返回上一个活动

返回上一个功能

如何返回上一个屏幕,而不是按返回键退出应用程序

滑动到下一个片段并返回后,该片段不显示任何内容