FragmentTransaction管理 Activity中 fragment的替换

来源:互联网 发布:淘宝退款对买家的影响 编辑:程序博客网 时间:2024/03/29 04:47

类似于页卡(使用过程中发现添加进去的布局都被包裹了,解决办法是使用相对布局,然后在里面添加一个背景透明的view:宽高都是全屏)



private void initTab(){contactFragment = new ContactFragment();//联系人recentFragment = new RecentFragment();//回话界面settingFragment = new SettingsFragment();//设置fragments = new Fragment[] {recentFragment, contactFragment, settingFragment };// 向组件中添加fragment添加显示第一个fragmentgetSupportFragmentManager().beginTransaction().add(R.id.fragment_container, recentFragment).add(R.id.fragment_container, contactFragment).hide(contactFragment).show(recentFragment).commit();}/** * button点击事件 * @param view */public void onTabSelect(View view) {switch (view.getId()) {case R.id.btn_message:index = 0;break;case R.id.btn_contract:index = 1;break;case R.id.btn_set:index = 2;break;}if (currentTabIndex != index) {//判断是否是当前页FragmentTransaction trx = getSupportFragmentManager().beginTransaction();trx.hide(fragments[currentTabIndex]);//隐藏掉原先的fragmentif (!fragments[index].isAdded()) {//判断fragment是否已被添加过trx.add(R.id.fragment_container, fragments[index]);//添加到trx管理中}trx.show(fragments[index]).commit();//如果已被添加过就直接显示出来}mTabs[currentTabIndex].setSelected(false);//讲具有选择效果的按钮设置为未被选中//把当前tab设为选中状态mTabs[index].setSelected(true);//将当前按钮设置为选择状态currentTabIndex = index;//修改当前页}


0 0
原创粉丝点击