Android中怎么使用RadioGroup和Fragment实现底部导航栏的功能
发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,本篇内容主要讲解"Android中怎么使用RadioGroup和Fragment实现底部导航栏的功能",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"Andr
千家信息网最后更新 2026年11月03日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安全错误
数据库的锁怎样保障安全
中关村互联网 科技集团
盈实互联网科技
科技制造互联网公司
北京互联网科技有限公司
互联网科技博客
互联网科技商业
广州市恰铎互联网科技有限公司
企晟互联网信息科技有限公司
长沙互联网科技
群盈汇互联网科技有限公司
互联网企业科技类企业如何做账
电子商务与互联网科技的关系
深圳无忧互联网科技
启辰互联网科技
互联网营销推广黑科技
从那以后互联网科技有限公司
互联网科技手抄报图片
好易买互联网科技
互联网对科技影响
银川新华互联网科技学校招聘
厦门中拓互联网络科技有限公司
智能科技公司是互联网公司吗
互联网医疗科技
嘟嘟瓜互联网科技
万易互联网科技有限公司
科技互联网创业计划书
温州喔噻互联网科技有限公司
以后互联网后是啥科技
杭州壁岐互联网科技有限公司
信承诺互联网科技有限公司