将一个片段调用到另一个片段时更改标题TextView

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将一个片段调用到另一个片段时更改标题TextView相关的知识,希望对你有一定的参考价值。

我正在处理我添加带有标签的导航抽屉的应用程序。因此,对于导航抽屉菜单选项,我为每个选项创建一个片段,它运行良好...

在我的主要活动中,我将TabFragment(包含fragment_1或fragment_2)充气为UI,在Fragment_1上有一个Button,当我点击按钮时我想打开导航抽屉片段....

我的导航抽屉片段打开很好,但问题是当我的导航抽屉片段打开时,我的titleBar没有根据片段标题改变...

注意:我知道当我们打开一个片段时,我们必须将片段视图替换为新的片段视图,但我想将片段作为活动打开

enter image description here

图1:当我点击Button时出现第二张图片,但我想更改TitleView并删除Navigation drawer图标。 enter image description here

编辑

在我的MainActivity中,我将Tabfragment膨胀为

mFragmentTransaction=mFragmentManager.beginTransaction();
mFragmentTransaction.replace(R.id.containerView, new TabFragment()).commit();

MyTabFragment:

public class TabFragment extends Fragment {

    public TabFragment() {
        // Required empty public constructor
    }
    public static TabLayout tabLayout;
    public static ViewPager viewPager;
    public static int int_items = 2 ;

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        View x=inflater.inflate(R.layout.content_main_menu,null);
        tabLayout=(TabLayout) x.findViewById(R.id.tabs);
        viewPager =(ViewPager) x.findViewById(R.id.viewpager);

        viewPager.setAdapter(new MyAdapter(getChildFragmentManager()));
        tabLayout.post(new Runnable() {
            @Override
            public void run() {
                tabLayout.setupWithViewPager(viewPager);
            }
        });
        return x;
    }

    class MyAdapter extends FragmentPagerAdapter{

        public MyAdapter(FragmentManager fm) {
            super(fm);
        }

        @Override
        public Fragment getItem(int position) {
            switch (position){
                case 0:
                    return new HomeFragment();
                case 1:
                    return new Offers();
            }
            return null;
        }

        @Override
        public int getCount() {
            return int_items;
        }

        @Override
        public CharSequence getPageTitle(int position) {
            switch (position){
                case 0 :
                    return "Home";
                case 1:
                    return "Offers";
            }
            return null;
        }
    }
}

在按钮上单击HomeFragment(或fragment_1)

Fragment fragment = new NavigationDrawerFragment();
FragmentManager fragmentManager = getActivity().getSupportFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
fragmentTransaction.replace(R.id.containerView, fragment);
fragmentTransaction.addToBackStack(null);
fragmentTransaction.commit();
答案

我只是找到我的问题答案..

在我尝试将片段调用到片段类之前,这就是我的ContainerView在NavigationDrawer片段中保持相同的原因。所以现在这一次,我正在创建一个新的Activity,在这个Activity中我膨胀导航Drawer片段,因为我之前的ContainerView被New Activity布局替换了

以上是关于将一个片段调用到另一个片段时更改标题TextView的主要内容,如果未能解决你的问题,请参考以下文章

导航到另一个片段时触发 API 调用

检测片段内的 ViewPager 选项卡更改

检测片段内的 ViewPager 选项卡更改

从一个片段移动到另一个片段时如何自动选择底部导航?

onDetach()不要求从一个片段移动到另一个片段

从片段导航到另一个片段时隐藏键盘