Android中怎么使用RadioGroup和Fragment实现底部导航栏的功能
发表于:2025-11-12 作者:千家信息网编辑
千家信息网最后更新 2025年11月12日,本篇内容主要讲解"Android中怎么使用RadioGroup和Fragment实现底部导航栏的功能",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"Andr
千家信息网最后更新 2025年11月12日Android中怎么使用RadioGroup和Fragment实现底部导航栏的功能
本篇内容主要讲解"Android中怎么使用RadioGroup和Fragment实现底部导航栏的功能",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"Android中怎么使用RadioGroup和Fragment实现底部导航栏的功能"吧!
先看效果图
步骤一:
完成对主界面main.xml的创建:
radioButton中重复使用的样式:被抽取出来在style中写出
点击RadioButton之后,导航栏文字颜色发生改变,声明在drawable中
名字为:rb_text_color代码如下:
导航栏图标发生变化这里只写其中一个其他三个都基本一样:
完成这些基本步骤之后,接下来就需要写Fragment的布局
写出其中一个另外三个类似。
之后后台代码中创建Fragment,这里也写其中一个:CartFragment
package com.example.fragmentdemo;import android.os.Bundle;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.TextView;import androidx.annotation.NonNull;import androidx.annotation.Nullable;import androidx.fragment.app.Fragment;public class CartFragment extends Fragment { private View view; private TextView tv_home; @Nullable @Override public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { if (view==null){ view = inflater.inflate(R.layout.cart_fragment,container,false); } return view; }}步骤二:在MainActivity中,完成对fragment的切换功能
具体注释已在代码中给出。
package com.example.fragmentdemo;import androidx.appcompat.app.AppCompatActivity;import androidx.fragment.app.Fragment;import androidx.fragment.app.FragmentManager;import androidx.fragment.app.FragmentTransaction;import android.os.Bundle;import android.util.Log;import android.view.View;import android.widget.RadioButton;import android.widget.RadioGroup;import java.time.LocalDate;import java.util.ArrayList;import java.util.List;public class MainActivity extends AppCompatActivity implements RadioGroup.OnCheckedChangeListener { private RadioButton rb_home,rb_discover,rb_cart,rb_user; private RadioGroup rg_group; private List fragments; private int position=0; private static final String TAG = "MainActivity"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); rb_home=findViewById(R.id.rb_home); rb_discover=findViewById(R.id.rb_discover); rb_cart=findViewById(R.id.rb_cart); rb_user=findViewById(R.id.rb_user); rg_group=findViewById(R.id.rg_group); //默认选中第一个 rb_home.setSelected(true); rg_group.setOnCheckedChangeListener(this); //初始化fragment initFragment(); //默认布局,选第一个 defaultFragment(); } private void defaultFragment() { FragmentManager fragmentManager = getSupportFragmentManager(); FragmentTransaction transaction = fragmentManager.beginTransaction(); transaction.replace(R.id.fragment_layout,fragments.get(0)); transaction.commit(); } private void setSelected() { rb_home.setSelected(false); rb_discover.setSelected(false); rb_cart.setSelected(false); rb_user.setSelected(false); } private void initFragment() { fragments = new ArrayList<>(); fragments.add(0,new HomeFragment()); fragments.add(1,new DiscoverFragment()); fragments.add(2,new CartFragment()); fragments.add(3,new UserFragment()); } @Override public void onCheckedChanged(RadioGroup group, int i) { //获取fragment管理类对象 FragmentManager fragmentManager = getSupportFragmentManager(); //拿到fragmentManager的触发器 FragmentTransaction transaction = fragmentManager.beginTransaction(); switch (i){ case R.id.rb_home: position=0; //调用replace方法,将fragment,替换到fragment_layout这个id所在UI,或者这个控件上面来 //这是创建replace这个事件,如果想要这个事件执行,需要把这个事件提交给触发器 //用commit()方法 transaction.replace(R.id.fragment_layout,fragments.get(0)); //将所有导航栏设成默认色 setSelected(); rb_home.setSelected(true); break; case R.id.rb_discover: position=1; transaction.replace(R.id.fragment_layout,fragments.get(1)); //将所有导航栏设成默认色 setSelected(); rb_discover.setSelected(true); break; case R.id.rb_cart: position=2; transaction.replace(R.id.fragment_layout,fragments.get(2)); //将所有导航栏设成默认色 setSelected(); rb_cart.setSelected(true); break; case R.id.rb_user: position=3; transaction.replace(R.id.fragment_layout,fragments.get(3)); //将所有导航栏设成默认色 setSelected(); rb_user.setSelected(true); break; } //事件的提交 transaction.commit(); }} 这样就完成了一个简单的底部导航栏功能,这个只能通过点击切换fragment,不能通过左右滑动去切换fragment。
到此,相信大家对"Android中怎么使用RadioGroup和Fragment实现底部导航栏的功能"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
导航
功能
底部
事件
代码
方法
步骤
切换
三个
内容
布局
触发器
学习
实用
更深
接下来
兴趣
名字
后台
图标
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
同上一堂课网络安全教育
什么是网络安全监管
软件开发部门工资
合肥京东方it岗位软件开发
数据库主密钥权限
网络安全与执法类公务员近视
CRM数据库的作用
网络安全知识 新疆
网络安全与行为论文
mac用于软件开发
僵尸毁灭工程服务器角色不能重生
腾讯云pc软件开发
网络安全办审查时间
网络安全法共几张几节
数据库图书管理系统需求报告
关于网络安全手抄报简单的
退税计算器服务器崩溃
急聘软件开发
小平网络技术导航网
我的世界手机搭建服务器教程
金准易搜数据库破解版
牙克石租房软件开发
系统软件开发基础知识
ai算法如何部署到t4服务器中
笔记本网络安全密码怎么填
湖北鲲鹏服务器采购
保定维云网络技术上班时间
网络技术师范生就业前景
石化软件开发
杭州做软件开发的国企有哪些