首页 > 其他分享 >Android Fragment实现一个底部导航栏切换页面

Android Fragment实现一个底部导航栏切换页面

时间:2022-10-22 10:58:39浏览次数:87  
标签:i1 monitor Fragment frame i2 MF1 Android 页面

用户界面UserActivity中包含两个Fragment,分别用来显示不同的应用功能,就像QQ中“聊天栏”“联系人”“动态”这三个底部导航栏之间的切换一样。

效果图:

 

 

在UserActivity对应的xml布局文件中加入一个Frame控件以容纳Fragment

<FrameLayout
        android:id="@+id/monitor_frame"
        android:layout_width="match_parent"
        android:layout_height="669dp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.0"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.0"/>

 

 

 不同的Fragment将会被放在这个框里边,点击监视器,将会显示MonitorFragment,点击主页,将会显示User_information_fragment

两个Fragment的布局文件就略去不写了,UserActivity中的代码如下:

public class UserActivity extends Activity {

    private ImageButton i1,i2;//i1和i2分别对应下边导航栏那两个按键


    private MonitorFragment MF1;
    private User_information_fragment UF1;
    private FrameLayout monitor_frame;
    private FragmentManager fManager;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.user_interface);

        fManager=getFragmentManager();
        monitor_frame=(FrameLayout) findViewById(R.id.monitor_frame);
        FragmentTransaction fTransaction = fManager.beginTransaction();
        MF1=new MonitorFragment();
        UF1=new User_information_fragment();
        fTransaction.add(R.id.monitor_frame,MF1);
        fTransaction.show(MF1);
        fTransaction.commit();//最后还需要使用commit()方法提交事务
     //通过以上几行,在打开UserActivity对应的这个页面时,将首先显示MonitorFragment.

     //以下几行用来实现点击按键切换Fragment i1=findViewById(R.id.i1); i2=findViewById(R.id.i2); i1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { i1.setImageResource(R.drawable.monitor_chosed); i2.setImageResource(R.drawable.home);//关于这两行:点击按键后按键本身的样子也会发生改变,实现被选中的状态 MF1=new MonitorFragment(); getFragmentManager().beginTransaction().replace(R.id.monitor_frame, MF1).commit(); } }); i2.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { i1.setImageResource(R.drawable.monitor); i2.setImageResource(R.drawable.home_chosed); UF1=new User_information_fragment(); getFragmentManager().beginTransaction().replace(R.id.monitor_frame, UF1).commit(); } }); } //隐藏所有fragment的函数,这个函数......似乎没用上,不过先搁在这吧 private void hideAllFragment(FragmentTransaction fragmentTransaction){ if(UF1 != null)fragmentTransaction.hide(UF1); if(MF1 != null)fragmentTransaction.hide(MF1); } }

参考:5.1 Fragment基本概述 | 菜鸟教程 (runoob.com)

标签:i1,monitor,Fragment,frame,i2,MF1,Android,页面
From: https://www.cnblogs.com/soaring27221/p/16815543.html

相关文章

  • 注册页面案例练习标签
    设置一个注册表<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>登录注册演示</title></head><body><!--定义表单form-->......
  • android开发:弹框(AlertDialog)和提示信息Toast字体大小颜色设置
    一、AlertDialog: AlertDialog.Builderbuilder=newAlertDialog.Builder(getActivity());builder.setTitle("温馨提示");builder.setMessage("是否进行下一个病人......
  • HTML标签案例注册页面
    <!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>表单标签</title></head><body><!--form:用于定义表单可以定一个范围......
  • android实现登录注册界面
    创建一个androidstudio工程在drawable中添加main_left:<?xmlversion="1.0"encoding="utf-8"?><shapexmlns:android="http://schemas.android.com/apk/res/andr......
  • Android 增加一个应用启动界面
    为了让app的逼格更高 为了让app的界面更人性化,并且让app在刚刚启动数据还没加载出来时不至于一片白屏太难看以至于吓跑用户,尝试增加一个启动页面。 首先建立一个新的......
  • Android 软键盘删除键触发问题分享
    本文解决的问题:Android输入法软键盘删除键点击多次,只触发一次删除事件本文示例代码地址:Android软键盘删除键触发示例代码背景笔者维护的app功能中,有个图文编辑器,由......
  • #Android studio 微信页面制作(二)
    今天继续用Androidstudio实现微信页面的制作首先打开项目看看之前的进展。这里我在第一次制作的基础上,使用recycleview等控件对联系录页面进行了新的UI设计布局。本次......
  • android有声电子书新版本1.61发布
    有声电子书(适用于Android1.5及以上版本)软件支持格式为txt,umd,jpg文字及漫画书的阅读,提供用户搜索SD卡中所有图书。特别加入了文本直接转换成语音的有声阅读功能。......
  • Android软件中嵌入地图之一:Sogou地图
          在App中加入地图功能真是让人揪结,Google地图功能强大,但是有些国内的手机厂商去掉了手机系统中Google地图的相关库,所以这类机型将无法安装调用了Google地图的软......
  • Android 代码库
    -​​安卓巴士​​-​​Arsenal​​-​​AndroidLibraries​​-​​Gems​​-​​Appance​​-​​Devstore​​-​​android-nice-repo​​-​​apkdemo​......