android底部导航,Android底部导航框架

Android 沉浸式/透明式状态栏、导航栏

Android 从4.4开始引进透明状态栏和导航栏的概念,并且在5.0进行了改进,将透明变成了半透明的效果。虽然此特性最早出现在ios,但不否认效果还是很赞的。

创新互联建站从2013年成立,先为昌邑等服务建站,昌邑等地企业,进行企业商务咨询服务。为昌邑企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。

至于4.4以下的手机,就不要考虑此特性了,好在4.4以下的手机份额已经非常小了。

我们先来看一下透明状态栏的实现,两种常见效果图如下:

虚拟导航栏并不是所有的手机都有,华为的手机多比较常见,就是上图屏幕底部按钮那块区域。设置导航栏和状态栏类似:

这是官方的解释,大致意思就是我们在布局的最外层设置 android:fitsSystemWindows="true",会在屏幕最上方预留出状态栏高度的padding。

由于fitsSystemWindows属性本质上是给当前控件设置了一个padding,所以我们设置到根布局的话,会导致状态栏是透明的,并且和窗口背景一样。

但是多数情况,我们并不在根布局设置这个属性,我们想要的无外乎是让内容沉浸在状态栏之中。所以我们经常设置在最上端的图片背景、Banner之类的,如果是Toolbar的,我们可以使用一层LinearLayout包裹,并把这个属性设置给LinearLayout,这样就可以避免Toolbar的内容下沉了。如:

上述方法可以解决普通页面的透明式状态栏需求,如有复杂需求可以参考下面这些:

Android 系统状态栏沉浸式/透明化完整解决方案

Android 沉浸式状态栏的实现

Android沉浸式状态栏(透明状态栏)最佳实现

还有开源库推荐: ImmersionBar

Android底部中间凸起导航栏设计(简单的自定义底部导航栏)

git地址 ,如果对您有帮助,麻烦点个赞~ 谢谢~

框架设计思想

需求分析

实现思路

通过resetHeight达到底部凸起效果

外部容器封装

Android知识串讲(1) 底部导航栏遮挡|转屏锁定|ActionBar隐藏

方法一:隐藏

Android中布局内容被底部系统导航栏遮挡

方法二:内容上移

Android手机底部NavigationBar挡住界面的解决方法

在 Manifest.xml 文件中设置 Activity 的属性

Android布局界面隐藏顶部导航栏

Android隐藏和显示虚拟导航栏

Android 获取手机存储总大小,系统占用空间

Android 获取屏幕宽度和高度的几种方法

Android 获取电池相关信息

Android电量计重要的类及函数介绍

安卓5.0后获取所有运行的进程信息

Android获取内存(RAM)大小信息

android 几种杀进程的方式

Android开发中 获取App缓存大小以及清除缓存

Looper.getMainLooper()使用误区

Android中通过资源文件获取drawable的几种方法

Fragment向Activity传递值

注意:

Android底部弹窗漏出底部导航栏/未能遮挡/底部透明了/未置底的问题

xxx耀10上面...底部漏出来了。另外一个项目也是类似弹窗,但是没有这个问题。

然后对比了下这个风格文件,发现是 是否悬浮在Activity之上 的问题:

item name="android:windowIsFloating"true/item设置为true就行了。

不过发现一个现象就是当锁屏再打开的时候显示就又正常了...也就是在某个生命周期里面做了一些事情(具体的先不管了哈。记录下...)

使用风格文件的地方:

正在思考自己尝试封装弹窗(计划包括分享弹窗,更新弹窗,奖励弹窗等,逐步来)。这个大概是自定义View差不多了再开始尝试搞....感觉从开始学习了好久,才完成了个人计划的一小半....

超简单,几行代码搞定Android底部导航栏

咳咳,答应过年增加新功能的,没想到拖到现在,延迟了一个来月,尴尬,尴尬

那个,我们先忽略这尴尬的事情吧,进入正题才是最重要滴

老规矩,先上效果图:

跟原来的图有个很明显的区别,你们也一定都发现了,对不对。那么显眼的小红点,一定都看到了吧。

当然除了这个,还增加了一项功能,虽然不是很明显,但相信也有小伙伴发现了吧,截图的这俩手机屏幕明显大小不同,但是底部导航栏的大小还是相差不大滴。

是的,你们没有看多,这次不仅增加了小红点功能,还增加了底部导航栏的适配,你没有听错,以后底部导航栏也不用那些dp、sp了,都按照UI妹子们标注的px来就可以了,再也不用为了底部导航栏去跟UI妹子解释啥叫dp了。

好了,效果图展示完了,现在该进入枯燥的使用介绍了。

由于这次改动有点大,所以,先介绍下上个稳定版本的用法,到底是用最新的,还是用原来的,就看各位小伙伴的意愿了

上个稳定版本是1.1.3的,引用方式如下

compile 'com.hjm:BottomTabBar:1.1.3'

具体用法如下(备注都加好了,我也就不多废话了):

最新版本是1.2.2的,引用方式如下

compile 'com.hjm:BottomTabBar:1.2.2'

其实1.2.0与1.1.3区别并不大,只有4点改动:

现在默认的,分割线高度都是设置的1个像素。这里以后也固定都用这个默认的高度了,不再对外提供修改的方法。

这就是新增加的适配了,多的也不说了,你们都懂的

标准尺寸,就是UI妹子给你提供的效果图的屏幕尺寸,只要在init()方法里添加上标准尺寸,你就可以放肆的使用px了

这个方法就是控制小红点显示的方法了,index就是需要显示或者隐藏小红点的TabItem,isShow是一个boolean类型的参数,他是控制小红点是否显示的,如果为true,就会显示小红点;如果为false,就会隐藏小红点

1.2.2版本新增了两个方法

介绍到这里,超简单的底部导航栏,第二阶段就可以告一段落了。以后还会持续优化,完善的。

第三阶段我打算封装一下有中间凸起的底部导航栏,这个功能我本地已经做了,但是封装进去的时候,封装的不理想,这次就没有上线,留作下次了。

最后,再上个 GitHub 地址


新闻名称:android底部导航,Android底部导航框架
文章转载:http://scyanting.com/article/dscjgod.html