Android中怎么使用RadioGroup和Fragment实现底部导航栏的功能
发表于:2025-02-01 作者:千家信息网编辑
千家信息网最后更新 2025年02月01日,本篇内容主要讲解"Android中怎么使用RadioGroup和Fragment实现底部导航栏的功能",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"Andr
千家信息网最后更新 2025年02月01日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 Listfragments; 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安全错误
数据库的锁怎样保障安全
数据库怎么查看操作日志
计算机网络技术城市分析
当前网络安全教学与实践
网络安全人才培养工作
宝塔怎么操作数据库
工行软件开发中心有几个研发部
计算机网络技术大专薪资
网络技术学测模拟测试
中国网络技术最厉害的大学
全国软件开发公司排行榜
广州中通生化软件开发
国家图书文献数据库
宏翔软件开发有限公司官网
服务器文件系统错误
四川pdu服务器电源大概多少钱
琼州学院思科网络技术学院
自己创建企业微信服务器
贵港木业网络技术支持
软件开发类的主图怎么做
晴天互联网科技
服务器错误405
全市网络安全专题会议
合肥凯梁网络技术有限公司
互联网公司没科技
车企做软件开发
南京国企干软件开发
网络安全性选填什么
Web数据库表单开发
印度网络安全部队
oa是否可以用云服务器