位置: 编程技术 - 正文

安卓开发笔记——多种方式实现底部菜单栏(仿微信界面)(安卓开发日记本)

编辑:rootadmin

推荐整理分享安卓开发笔记——多种方式实现底部菜单栏(仿微信界面)(安卓开发日记本),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:安卓开发入门实例,android开发笔记本,安卓开发 书,全网最全android开发笔记,安卓开发 书,全网最全android开发笔记,安卓移动开发笔记,安卓技术开发笔记,内容如对您有帮助,希望把文章链接给更多的朋友!

关于底部菜单是什么,我想没必要介绍了,在市场上的APP里太常见了,这里提供两种方式来实现。

记得之前写过几篇关于底部菜单实现的方法,有兴趣的朋友可以看看:

1、《安卓开发复习笔记——TabHost组件(一)(实现底部菜单导航)》

2、《安卓开发复习笔记——TabHost组件(二)(实现底部菜单导航)》

3、《安卓开发笔记——Fragment&#;FragmentTabHost组件(实现新浪微博底部菜单)》

今天带来种相对更通俗易懂的写法,不再和过去一样去沿用TabHost了,这次我们直接用LinearLayout布局来实现,先来看下实现效果图:

中间内容区域有两种实现方式:

1、ViewPager  --可滑动界面      2、Fragment  --固定界面

1、界面分析

这里有个小技巧,把底部菜单栏的每一个小的LinearLayout的宽度都设置成0dp,然后用weight权重去分配它,中间内容区域也是把高度设置成0dp,然后用weight权重去分配它。(weight默认是把界面里空闲的位置作为划分位置,所以这里的宽度或者高度要注意设置成0dp)

2、具体实现(内容区域为ViewPager可滑动界面)

布局文件:

activity_top.xml(顶部布局)

activity_bottom.xml(底部布局)

activity_main.xml(主布局,引入上下布局)

page_.xml-page_.xml(4个ViewPager的滑动界面,由于内容简单这里只给出其中1个)

具体实现代码:

ViewPager适配器(关于ViewPager的使用方法这里就不多说了,不清楚的朋友看我这篇文章吧《安卓开发笔记——ViewPager组件(仿微信引导界面)》)

MainActivity(主界面代码)

初始化控件后,完成对底部菜单的4个LinearLayout的点击监听事件,在用户触发点击事件的时候,设置选择状态然后跳转相对应的界面。为了使得滑动ViewPager也能同时触发底部菜单状态的改变,这里也对ViewPager设置了滑动监听。其他的代码注释很全,看注释就可以了。

安卓开发笔记——多种方式实现底部菜单栏(仿微信界面)(安卓开发日记本)

3、具体实现(内容区域为Fragment固定界面)

布局文件:

布局文件基本没变化,只是把主界面的ViewPager改成了FramLayout,其他文件保持一致,就不贴出来了。

View Code

具体实现代码:

由于这次的内容是基于Fragment的,所以需要有4个Fragment文件,由于代码相同这里只贴出一个。

Frgament(HomeFragment,AddressFragment,FriendFragment,SettingFragment)

View Code

MainActivity(主界面代码)

代码很简单,一看就能明白就不多说什么了,只提个需要注意的地方,由于便于向下兼容这里的Fragment是用V4包下的,在导入包的时候需要注意一下。

到这里界面效果就基本实现了,就算是旋转屏幕也能够很好的达到适配效果,最后我们还需要做的2点,可能有些朋友已经发现了,在我们旋转屏幕的时候,Fragment会重新调用onCreate方法,导致成员变量重新初始化了一次,Fragment对象也重置为空,然后就调用不到hide方法,从而出现了界面重复叠加的情况。

下面提供解决的方法,其实很简单,只需要在AndroidManifest.xml里面对应的activity里添设置改换屏幕方向等操作时不触发oncreate事件就可以。

最后我们隐藏下标题栏,在application里添加上:

这样就大功告成了!

总结:

基于ViewPager实现的内容:

优点:

1、界面可以滑动,美观,流畅。

缺点:

1、当界面里有一些需要用手势来实现的内容会起冲突,比如我们ListView里的侧滑删除。

2、由于采用的是ViewPager,所以页面内容实现代码会严重依赖于MainActivity,代码太过冗余,不便于后期维护。

基于Fragment实现的内容:

优点:

1、Fragment文件单独存在,各自页面的内容各自去实现完成,有自己的生命周期,便于后期维护。

2、对于需要手势操作的一些内容不会起冲突。

缺点:

1、界面不可滑动,比较死板。

Linux下编译Android平台的ffmpeg库 在Linux平台下编译要方便些,我这里使用的环境是openSUSE,用Ubutunu也是一样的。首先你需要Android-NDK和ffmpeg源码,不同的版本里的文件结构有所差别,编

Android SQLite, KopDB 框架学习1——使用 前言我的博客:

Android中的警告对话框(AlertDialog)使用案例 创建AlertDialog对话框的步骤:1、获得AlertDialog的静态内部类Builder对象,由该类来创建对话框。2、通过Builder对象来设置对话框的标题、按钮及按钮将要响

标签: 安卓开发日记本

本文链接地址:https://www.jiuchutong.com/biancheng/384281.html 转载请保留说明!

上一篇:Android apk动态加载机制的研究(二):资源加载和activity生命周期管理(android动态添加view)

下一篇:Linux下编译Android平台的ffmpeg库(linux0.11编译)

  • 购入原材料结转采购成本的会计分录
  • 个人独资企业经营所得税税率表2023
  • 外购商品用于营销活动
  • 未认证发票先入账可以吗
  • 申请国家知识产权的条件
  • 融资租赁与经营租赁相比具有的优势
  • 商品过期可以向商家索要赔偿吗
  • 交易性金融资产的交易费用计入哪里
  • 股权转让有溢价怎么做账
  • 金税盘领用发票查询不到
  • 当期销项税额等于什么乘以什么
  • 进项税额转出是好事还是坏事
  • 企业捐赠现金支出应在哪个项目反应
  • 期间损益结转怎么结转
  • 代订机票的电子专用发票可以抵扣吗
  • 公司购买一辆车
  • 银行的贷款损失准备会计分录
  • ·exe是什么文件
  • 企业并购特殊性税务处理
  • 电路改造计入什么科目
  • 两名山地车骑手死亡
  • 其他债权投资按公允价值计量,为什么计提减值准备知乎
  • 配置eAccelerator和XCache扩展来加速PHP程序的执行
  • php抽奖程序源码
  • 基于transformer的文本分类
  • 废旧物资发票抵扣
  • 买税控盘的钱怎么做账
  • 买过来的土地可以确权吗
  • 差旅费报销应注意什么
  • 设置php扩展路径
  • javaweb官方文档
  • 毕业设计教程
  • 【历史上的今天】3 月 23 日:网景创始人出生;FORMAC 语言的开发者诞生;PRMan 非商业版发布
  • 基于Pytorch的风格转换
  • 对外长期投资会计分录?
  • 企业会计准则季度怎么填
  • 转出未交增值税怎么算
  • python中有很多包管理工具
  • 资产负债表的编制原理
  • 母公司和子公司可以一起投标吗
  • 进项大于销项怎么结转增值税
  • 电子发票找不到了可以找回吗
  • 资本公积根据什么填列
  • jsp连接数据库的步骤
  • 自查补税怎么做账
  • 4s店除了卖车还有什么
  • 实收资本可以用于偿还借款
  • 六税两费减半征收政策
  • 投资性房地产进项税抵扣
  • 个人所得税的征收模式为()A
  • 社保比例调整了吗
  • 专用发票与普通发票的区别有
  • 作业成本多用于直接成本的核算
  • 关联方往来款账务处理
  • 代扣代缴增值税怎么做账
  • 进口产品内销如何交税
  • 年底员工借款如何处理
  • 取得工程款发票计入什么会计科目里
  • 员工的探亲费应由谁支付
  • 规范的建账原则是什么
  • win8系统忘记电脑开机密码怎么办
  • cmos设置密码开机密码
  • centos7.0网络配置
  • Winpack.exe - Winpack是什么进程
  • xp系统纯净版gho
  • xshell使用ssh命令远程连接linux
  • movie是什么文件
  • win7插上u盘显示格式化怎么办
  • cocos2d教程
  • element拖拽
  • node. js教程
  • linux中shell脚本实验总结
  • 批处理杀死进程
  • javascript语言介绍
  • javascript总结笔记
  • 如何控制孩子的手机使用时间
  • python并发和并行
  • windows搭建python运行环境
  • 挂车是否需要缴纳车船税
  • 浙江省医保改革方案2022
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设