android在Fragment做轮播图,Android Fragment沉浸式轮播图
所谓的沉浸式轮播图,指的是轮播图位于状态栏后面,这是最近比较流行的一种设计方式,在电商客户端上面用的比较多。比如下面的京东Android客户端首页:
京东首页
Android 从Android4.4开始支持一种半透明的状态栏,提供了一个属性android:windowTranslucentStatus。只要在value/styles.xml里面按照下面配置,就可以实现:
true
它在让状态栏半透明的同时,也会将布局内容往上拉至状态栏后面。
Activity页面沉浸方案
若是用在Activity页面上有两种方法实现沉浸式轮播图:
准备两个Theme,让需要状态栏沉浸的用上含有android:windowTranslucentStatus属性的theme
在onCreate的setContentView之前动态调用
getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
Fragment页面沉浸方案
将Fragment所在的Activity的theme按照上面的方法配置即可,效果如下:
效果图
主页确实做到了沉浸式轮播图,但是其他的Fragment的内容也被往上拉到了状态栏后面。
对于上面出现的问题有两种解决办法:
在切换fragment的时候重新创建Activity,从而调用不同的Theme在首页达到沉浸轮播图的效果,其他的Fragment调用正常的Theme,但是这样频繁销毁、重建Activity会造成额外的性能损耗,而且页面切换也会比较慢,这种方案并不推荐。
在不需要沉浸状态栏的Fragment页面放一个View,View的高度和状态栏的高度一致,这样被拉到状态栏后面的布局就是我们的放置的View,真正的内容就不会被往上拉了。
我们具体说下方案2,主要是解决不需要沉浸状态栏的Fragment页面内容会往上拉的问题,
不需要沉浸状态栏的Fragment 布局如下:
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/bg_gray_dark"
android:orientation="vertical"
>
android:layout_width="match_parent"
android:layout_height="@dimen/statusbar_view_height"
android:background="@color/colorPrimaryDark"
/>
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
values/dimens.xml里的状态栏高度:
25dp
看下效果图:
效果图
如果项目最低适配到 android 4.4那么到这里已经结束了。
但是如果要适配到Android 4.4以下,会因为系统不支持android:windowTranslucentStatus属性,导致整体布局是不会往上拉,这时候我们设置的View,就会把真正的内容挤下去,这样也是不符合要求的,解决办法就是再创建一个文件夹values-v19,
values-v19/dimens.xml里的内容如下:
25dp
原来的values/dimens.xml里的内容改为:
0dp
根据资源文件加载规则,在Android 4.4以下的手机上,会加载values/dimens.xml文件下的尺寸,这时候高度为0,就不会把真正的内容挤下去,在Android 4.4及更高版本的手机上会加载values-v19/dimens.xml文件下的尺寸,这样,真正的内容就不会被往上拉,问题完美解决。
参考:
android在Fragment做轮播图,Android Fragment沉浸式轮播图相关推荐
- Android UI进阶之旅9 Material Design之沉浸式设计
###沉浸式设计基本概念 官方的沉浸式Translucent定义:就是让整个APP沉浸(充斥了整个屏幕)在屏幕里面,没有显示状态栏,甚至没有显示底部导航栏. 平时大家所讨论的沉浸式:比如QQ的顶部To ...
- Android 全屏悬浮窗适配(悬浮窗沉浸式)
前言 由于Android 高版本的类型限制,如果我们使用WindowsManager 做悬浮窗,会被限制在当前窗口内容中.而当前窗口大小会限制在状态栏和导航栏之间,所以会导致悬浮窗沉浸不了状态栏. 高 ...
- Android状态栏微技巧,带你真正理解沉浸式模式
转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/51763825 本文同步发表于我的微信公众号,扫一扫文章底部的二维码或在微信搜索 郭 ...
- (转)Android状态栏微技巧,带你真正理解沉浸式模式
版权声明:本文出自郭霖的博客,转载必须注明出处. https://blog.csdn.net/sinyu890807/article/details/51763825 转载请注明出处:http://b ...
- 《Android状态栏微技巧,带你真正理解沉浸式模式(转载)》
最近爱上了郭神的文章,不禁转发一下~~ 转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/51763825 本文同步发表于我的微信公众号 ...
- Android状态栏微技巧,带你真正理解沉浸式模式(转)
转载自:http://blog.csdn.net/guolin_blog/article/details/51763825 记得之前有朋友在留言里让我写一篇关于沉浸式状态栏的文章,正巧我确实有这个打算 ...
- Android开发之实现QQ空间、美团首页沉浸式状态栏
前言:QQ空间和美团首页的状态栏是图片充满了状态栏,往上滑动,状态栏会慢慢变成ToolBar的颜色或者是我们自定义组件的背景颜色,今天我们就来实现这一效果! --------------------- ...
- android app实现系统导航栏设置图片起到沉浸式效果
1:在oncreate中,调用以下代码块,注:因为继承了自己封装的BaseActivity,故写在了重写方法provideBindView()中,其实和在oncreate中一样.(代码在最下面,图为展 ...
- android studio 显示view树_Android 沉浸式解析和轮子使用
文 | 黑羽 on 移动电商 前言 我们先一起来回顾一下实现沉浸式状态栏的一般套路.在 Android 上,关于对 StatusBar(状态栏)的操作,一直都在不断改善,并且表现越来越好,在 Andr ...
最新文章
- 2022-2028年中国废矿物油行业市场研究及前瞻分析报告
- 【目标检测】yolo系列:从yolov1到yolov5之YOLOv5训练自己数据集(v6.0)
- 循环爬取图片_Java爬取简单的网页内容和图片
- js中显示一个指定html文档,JS实现选定指定HTML元素对象中指定文本内容功能示例...
- admm算法_「优化」交替方向乘子法(ADMM)的基本原理
- java sdk 1.7_jdk 1.7升级到1.8后显示还是1.7
- mysql1440秒未活动_phpMyAdmin登陆超时1440秒未活动请重新登录
- mysql在可视化软件navicat中如何解决中文乱码问题
- linux脚本编写思想,Linux脚本编写入门基础(三)
- 95-150-544-源码-Sink-Flink BucketingSink 源码分析
- php 完整redis类,PHP Redis类
- 小区的净水设备,应该很少人用,为什么
- 各种杀毒软件序列号注册码大全
- GRE阅读高频机经原文及答案之鸟叫研究
- 【深度学习】CNN算法
- 匹配表情emoji 正则_新版Emoji表情过滤
- iOS Block弱引用
- Linux bash: redis-server: 未找到命令
- java fushubaioshi_java – AI如何为战列舰建立遗传规划模型
- 龙族幻想最新东京机器人位置_龙族幻想东京攻略异闻怎么触发_龙族幻想东京攻略异闻详细攻略_求知软件网...
热门文章
- 一种简单的压力传感器信号调节电路
- C语言数据结构 单链表的建立、遍历、查找、插入和删除操作
- 自定义商品分类,选择分类之后,添加商品附属性;仿淘宝后台添加商品附属性的价格和数量
- 【pytorch损失函数(4)】nn.MSELoss,(Mean Squared Error,MSE) 均方误差(MSE)(squared L2 norm,平方L2范数)。它也被称为L2 Loss。
- android融云自定义通知,Android SDK 体系架构 - 融云 RongCloud
- Springboot优雅的参数校验(一)
- discern concern fifth sixth
- 平衡树之文艺平衡树(维护区间)
- 【教程】基于resnet的中草药识别小程序_python_CNN图像识别
- 用html语言做坦克大战