多个Fragment在一个activity中通过按钮的展示方法

本文详细介绍了在Android应用中如何使用Fragment来构建动态界面。包括创建Fragment、整合Fragment与MainActivity、实现底部导航栏切换等功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

fragment使用方法

1. 创建主Mainactivity extends AppCompatActivity

2. Oncreate & setContentView

3. 完成XML的配置,包含两个部分,底部栏三个按钮及上边的content_view,注意都要加id(用来放接下来的的fragment)

4.创建3个fragment的layout xml页面

5. 创建fragment package,里面放3个fragment的页面,注意继承V4的Fragment,并修改return inflater

public class fragment_main extends Fragment {
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
return inflater.inflate(R.layout.fragment_main,container,false);
}
}

6. 在Mainactivity中初始化 3个fragment的java和xml
LinearLayout menu_Main;
LinearLayout menu_Middle;
LinearLayout menu_Menu;
protected fragment_main FragmentMain = new fragment_main();
protected fragment_menu FragmentMenu = new fragment_menu();
protected fragment_middle FragmentMiddle = new fragment_middle();

7. 将几个fragment页面添加到mainactivity中,并设置展示哪个,hide哪个
this.getSupportFragmentManager()
.beginTransaction()
.add(R.id.contain_con,FragmentMain)
.add(R.id.contain_con,FragmentMiddle)
.hide(FragmentMiddle)
.add(R.id.contain_con,FragmentMenu)
.hide(FragmentMenu)
.commit();

8. 初始化3个Xml页面并findbyid,若使用implement,则初始化监听
private void initView() {
menu_Main=findViewById(R.id.menu_main);
menu_Menu=findViewById(R.id.menu_menu);
menu_Middle=findViewById(R.id.menu_middle);

menu_Main.setOnClickListener(this);
menu_Menu.setOnClickListener(this);
menu_Middle.setOnClickListener(this);
}

9. implement或内部类方法设置监听

10 在监听方法中使用switch方法,点击哪个按钮就展示哪个fragment,并注意之前添加过fragment,所以只需设置show和hide。
switch (v.getId())
{
case R.id.menu_main:
this.getSupportFragmentManager()
.beginTransaction()
.show(FragmentMain)
.hide(FragmentMiddle)
.hide(FragmentMenu)
.commit();
break;
case R.id.menu_middle:
this.getSupportFragmentManager()
.beginTransaction()
.hide(FragmentMain)
.show(FragmentMiddle)
.hide(FragmentMenu)
.commit();
break;
case R.id.menu_menu:
this.getSupportFragmentManager()
.beginTransaction()
.hide(FragmentMain)
.hide(FragmentMiddle)
.show(FragmentMenu)
.commit();

break;
}

 

转载于:https://www.cnblogs.com/dongbo-2018/p/10637388.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值