【问题标题】:Change Title TextView when call one fragment to another fragment将一个片段调用到另一个片段时更改标题 TextView
【发布时间】:2017-03-16 11:02:41
【问题描述】:

我正在开发一个应用程序,在该应用程序中添加了一个带有选项卡的导航抽屉。因此,对于 Navigation Drawer 菜单选项,我为每个选项创建了一个片段,并且效果很好......

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

我的导航抽屉片段打开正常,但问题是当我的导航抽屉片段打开时,我的titleBar 不会根据片段标题更改...

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

图片1:当我单击Button 时,会出现第二张图片,但我想更改TitleView 并删除Navigation drawer 图标。

编辑

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

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

我的标签片段:

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();

【问题讨论】:

  • 提供您的代码,以便有人可以提供帮助。
  • 请检查更新的问题'

标签: android android-layout android-fragments navigation


【解决方案1】:

我刚刚找到我的问题的答案..

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多