繁体   English   中英

无法更改嵌套片段中的ActionBar标题

[英]Can't change ActionBar title in a nested fragment

有一个片段,它的xml标记包含ViewPager 在此片段中,有必要通过滑动在其他片段中实现导航。

public class MainFragment extends Fragment {

    private View view;

    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        view = inflater.inflate(R.layout.main_fragment, null);

        ViewPager viewPager = (ViewPager) view.findViewById(R.id.viewPager);
        viewPager.setAdapter(new MyAdapter(getChildFragmentManager()));

        return view;
    }

    public class MyAdapter extends FragmentStatePagerAdapter {
        public MyAdapter(FragmentManager fm) {
            super(fm);
        }

        @Override
        public Fragment getItem(int position) {
            Fragment fragment = null;
            switch (position) {
                case 0:
                    fragment = new Fragment1();
                    break;
                case 1:
                    fragment = new Fragment2();
                    break;
            }
            return fragment;
        }
    }
}

一切正常。 问题是Fragment1无法使用setTitle()方法设置自己的标题: 标题保持不变

public class Fragment1 extends Fragment {
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        view = inflater.inflate(R.layout.fragment1, null);

        getActivity().setTitle("Fragment 1");

        return view;
    }
}

出了什么问题,为什么当我调用setTitle()时包含MainFragment的父Activity的标题没有改变?

谢谢!

您可以使用以下方法从片段中更新活动标题:

((AppCompatActivity)getActivity()).getSupportActionBar().setTitle("My custom title");

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM