将一个片段调用到另一个片段时更改标题TextView
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将一个片段调用到另一个片段时更改标题TextView相关的知识,希望对你有一定的参考价值。
我正在处理我添加带有标签的导航抽屉的应用程序。因此,对于导航抽屉菜单选项,我为每个选项创建一个片段,它运行良好...
在我的主要活动中,我将TabFragment
(包含fragment_1或fragment_2)充气为UI
,在Fragment_1上有一个Button,当我点击按钮时我想打开导航抽屉片段....
我的导航抽屉片段打开很好,但问题是当我的导航抽屉片段打开时,我的titleBar
没有根据片段标题改变...
注意:我知道当我们打开一个片段时,我们必须将片段视图替换为新的片段视图,但我想将片段作为活动打开
图1:当我点击Button
时出现第二张图片,但我想更改TitleView
并删除Navigation drawer
图标。
编辑
在我的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的主要内容,如果未能解决你的问题,请参考以下文章