Fragment底部导航栏

简介: 一个页面以微信为例,从上到下依次是状态栏,Activity顶部导航栏,Fragment,Activity底部导航栏。每点击一个底部导航栏都会replace另一个Fragment。

一个页面以微信为例,从上到下依次是状态栏,Activity顶部导航栏,Fragment,Activity底部导航栏。


每点击一个底部导航栏都会replace另一个Fragment。



1 设置主界面


1.1 设置底部导航栏UI


首先先在主Activity中——的XML文件中设置一个Fragment容器FragmentContainerView,以及一个底部导航栏(用线性布局设置)。


而要让fragment容器占满大部分屏幕,则要把权重设为1。


而底部导航栏的每个UI元素也是权重比例都是1:1:1。


额外:可以单独开一个XML的Layout的XML文件,把底部导航栏放进去,到时候直接include一个layoutt属性就可以了。


1.2 设置底部导航栏图标变色


设置selector选择器,这个item每当被选择state_selected="true"时指定一个@drawable触发变色。然后在xml文件中src设置图片。


1.3 Fragment容器和底部导航栏的分割线


View设置背景宽高——把高度设为2dp即可,颜色设置淡一点即可。



2 在Activity的Java代码中进行初始化


2.1 找控件


findViewById(线性布局容器,图片,文字等....)。



3 创建一个Fragment


3.1 设置Fragment的布局文件


你可以在Fragment的XML布局文件中设置各种各样的UI,这里只设置一个文字TextView


3.2 找控件


findViewById(文字)。


3.3  重置文字


如果Fragment被创建出来的时候,传进来的参数不为空,则把传进来的参数设置到文字上面。



4 Fragment添加至容器中(默认首页)


4.1 获取FragmentManager对象


getSupportFragmentManager()获得一个FragmentManager对象。


4.2 获取FragmentTransaction对象


beginTransaction()获取一个 FragmentTransaction对象。


4.3 替换Fragment


new一个Fragment,用newInstance,并且还能传入参数。



5 为每个线性布局添加点击事件


实现点击事件接口,并实现onclick方法,通过switch的v.getID()判断


5.1 给底部导航栏的icon和文字变色


icon:setSelected(true);


文字:setTextColor(getResources().getColor(R.color.xxx));



注意点击icon的时候要给其他的icon变回来

目录
相关文章
|
Android开发 Java API
Android中(Service )服务的最佳实践——后台执行的定时任务
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010046908/article/details/47727367             Android中的定时任务一般有两种实现方式,一种是使用Java API里提供的Timer类,一种是使用Android的Alarm机制。
4977 0
|
前端开发 API 决策智能
多智能体微调实践:α-UMi 开源
近年来,为了加强大型语言模型(Large-Language Models, LLM)实时信息处理、解决专业问题的能力,催生了工具调用智能体(Tool Integrated Agent)概念
|
存储 安全 文件存储
UGREEN NAS
【6月更文挑战第30天】UGREEN NAS
541 59
|
编解码 监控
Zoom + OBS + B 站直播配置
Zoom + OBS + B 站直播配置
|
XML Java 开发者
论面向方面的编程技术及其应用(AOP)
【11月更文挑战第2天】随着软件系统的规模和复杂度不断增加,传统的面向过程编程和面向对象编程(OOP)在应对横切关注点(如日志记录、事务管理、安全性检查等)时显得力不从心。面向方面的编程(Aspect-Oriented Programming,简称AOP)作为一种新的编程范式,通过将横切关注点与业务逻辑分离,提高了代码的可维护性、可重用性和可读性。本文首先概述了AOP的基本概念和技术原理,然后结合一个实际项目,详细阐述了在项目实践中使用AOP技术开发的具体步骤,最后分析了使用AOP的原因、开发过程中存在的问题及所使用的技术带来的实际应用效果。
290 5
|
8月前
|
NoSQL 数据库 Redis
如何保证MQ幂等性?或 如何防止消息重复消费?
如何保证MQ幂等性?或 如何防止消息重复消费?
|
Ubuntu 开发工具 git
Ubuntu安装homebrew的完整教程
本文介绍了如何在没有公网的情况下安装 Homebrew。首先访问 Homebrew 官网,然后通过阿里云的镜像克隆安装脚本,并创建普通用户进行安装。接着修改 `install.sh` 文件指向国内镜像,执行安装命令。最后配置环境变量并更换 Homebrew 源为国内镜像,确保安装顺利。
2271 50
|
数据采集 存储 自然语言处理
基于Qwen2.5的大规模ESG数据解析与趋势分析多Agent系统设计
2022年中国上市企业ESG报告数据集,涵盖制造、能源、金融、科技等行业,通过Qwen2.5大模型实现报告自动收集、解析、清洗及可视化生成,支持单/多Agent场景,大幅提升ESG数据分析效率与自动化水平。
739 0
Flutter-自定义图片3D画廊
Flutter-自定义图片3D画廊
217 0
|
UED
返回按钮——没有上一页的URL时,跳转到首页(document.referrer的妙用)
返回按钮——没有上一页的URL时,跳转到首页(document.referrer的妙用)
275 0