我正在处理我添加了带标签的导航抽屉的应用程序。因此,对于导航抽屉菜单选项,我为每个选项创建一个片段,它运行良好......
在我的主要活动中,我将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();
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();
答案 0 :(得分:0)
我只是找到我的问题答案..
在我尝试将片段调用到片段类之前,这就是我的ContainerView在NavigationDrawer片段中保持相同的原因。所以现在这一次,我正在创建一个新的Activity,在这个Activity中我膨胀了导航Drawer片段,因为我之前的ContainerView被New Activity布局替换了