现在都安卓按钮透明7.0系统了,为什么不可以透明状态栏

博主最新文章
博主热门文章
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)输入关键字或相关内容进行搜索
手机的顶部状态栏,也就是信号、电量那条,有4种状态,分别是正常、变色、透明(也称沉浸式状态栏)、消失(也就是全屏)。
后3种特殊用法,具体见下:状态栏变色\n常见使用场景:如果title背景为纯色且显眼,一般会把状态栏的背景色也变成title的颜色,看起来大气,比如流应用中的网易新闻。
使用5+API )。首页配置
首页需要在manifest.json文件中,plus-&launchwebview下添加statusbar节点,并配置background的值(格式为#RRGGBB)。
若首页为secondwebview,则调整launchwebview为secondwebview即可。终端支持:
- Android5及以上系统支持;
- iOS7.0及以上系统支持。前景色处理:
当背景色调整后,如果调整不当,会造成前景的信号栏文字颜色与背景太相近,看不清前景,此时需要调整前景色。
前景色的使用限制更多些,只能设置黑或白,通过plus.navigator.setStatusBarStyle('dark');设前景为黑色,'dark'换成light则前景色变为白色。
同时前景色处理在终端支持方面:
- Android5只有小米和魅族支持,Android6及以上所有安卓支持;
- iOS7及以上支持高度处理:此时webview高度没有全屏,webview高度+状态栏高度=手机屏幕高度。
也就是转场动画时,webview动画是不会通顶的,状态栏不会在转场时变化。状态栏透明(沉浸式)\n常见使用场景:如果页面顶部是图片,一般会把状态栏变成透明,此时同时会处理成滚动后恢复为纯色title,比如流应用中的36kr:
或者看视频写法:
终端支持:
- Android4.4及以上系统支持;
- iOS7.0及以上系统支持。
前景色处理:
与背景色调整相同,如果背景图颜色不当,会造成前景的信号栏文字颜色与背景太相近,看不清前景,此时需要调整前景色。
前景色的使用限制更多些,只能设置黑或白,通过plus.navigator.setStatusBarStyle('dark');设前景为黑色,'dark'换成light则前景色变为白色。
同时前景色处理在终端支持方面:
- Android5只有小米和魅族支持,Android6及以上所有安卓支持;
- iOS7及以上支持高度处理:
注意,此时webview高度为全屏,状态栏高度为0,也就是webview高度=屏幕高度。
状态栏背景透明后前景图标覆盖在webview顶部。
尤其注意此时dom里涉及fix定位计算的元素,可能需要重新排高度。
在状态栏透明的情况下,转场动画时,webview动画是会通顶的,状态栏那里也会有条线左右移动。其他注意:
沉浸式状态栏不支持动态调整,属于应用级,真机运行不生效,需要提交到云端打包后有效。
一个app设置了沉浸式,就意味着里面的每个webview都变成沉浸式。
这可能会造成很多页面都需要调整高度,此时有一种方案,就是在webview创建时,允许通过一个参数设置把这个webview的状态条再模拟显示出来,plus.webview.create('http://m.weibo.cn/u/', 'test', {statusbar:{background:&#D4D4D4&}})。这样设置后,webview的高度重新回到状态栏下方,不再顶到屏幕顶部。
此api从HBuilder8.1 alpha版起生效。全屏显示 (没有状态栏)\n常见使用场景:如果页面是全屏游戏,一般会直接让状态栏消失,也就是页面全屏。webview高度全屏了,状态栏没有了。
终端支持:
没有终端类型限制
高度处理:与状态栏透明相同,webview高度=屏幕高度,状态栏高度为0且不显示前景内容。需要注意dom里fix元素的调整。
之前好像是没有这个问题,我最近升级到miui9.1,出现了这个问题,百度了一下,如果是MIUI9的系统还需要加上这段代码
Window window = getWindow();
window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
window.getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);
我的是小米6
我也无法改变
注意看文中的终端支持描述
plus.navigator.setStatusBarStyle('dark');无法改变前景色是为啥?
注意看终端支持
我的沉浸式状态栏是透明渐变的,如何把透明渐变去了呢?
第一种用了,没效果啊,求救!
要回复文章请先或
赞助DCloud可免广告,
赞助DCloud可免广告,安卓8.0已经出了,很多人Android7.0都没用到,为什么?安卓8.0已经出了,很多人Android7.0都没用到,为什么?推哥科技爆料百家号机友都知道,安卓8.0系统,已经发布了将近半年的时间,然而,这款系统便没有普及开来,市场占有率还不到2%。而对于苹果用户来说,iOS11系统的升级率高达65%,iOS11的升级率高达86%。有意思的是,苹果在此前的WWDC开发者大会上,苹果CEO库克指出,iOS系统的升级安装率,普遍高于安卓用户,数据显示,安卓用户仅有7%已经更新到了新系统,很多用户,甚至连安卓7.0都没有用到。是什么原因导致Android新系统的安装率,明显低于iOS系统呢?长话短说,有几点原因。第一、碎片化严重从Android系统诞生到现在,碎片化一直是安卓系统面临的最大问题之一。安卓手机系统,从大的市场范围来看,很多是千元机,因为系统开发成本的原因,绝大多数的手机厂商,不愿意提供版本升级服务。机型太多,谷歌没有做到像苹果一样,固定时间去推送升级服务,更多的取决于国产手机厂商的升级欲望。第二、国产手机普遍定制化系统因为谷歌的安卓系统,是允许厂商根据需求去定制化系统的,也可以对谷歌原生系统的功能,界面等,进行深度定制。所以,就有了小米手机的MIUI,魅族的flyme等。所以,很多手机厂商,因为定制系统的周期,普遍较长,没有足够的信心,能适配到安卓更高的版本,基本上要滞后半年到一年。就好比小米MIUI,近期推送了安卓8.0的开发版,小米MIX2和小米6用户可以按照需求去升级。第三、升级效果不大安卓新系统的变化,实在是微乎其微,很难察觉到有什么实质性的改变,这也一定程度上,改变了安卓用户对新系统的看法,认为没有必要升级。所以,这就有了为什么安卓8.0早已发布,国内很多机友表示都没有升级推送服务。不要说8.0了,很多人的手机估计7.0都没用到,不过还是照样用的好好的。欢迎留言,看看大家都是安卓什么版本的手机,好用吗?本文仅代表作者观点,不代表百度立场。系作者授权百家号发表,未经许可不得转载。推哥科技爆料百家号最近更新:简介:专注玩机技巧、数码测评、科技互联网资讯作者最新文章相关文章&>&Android内容覆盖透明状态栏下实现全屏模式下带状态栏的效果
Android内容覆盖透明状态栏下实现全屏模式下带状态栏的效果
上传大小:1.66MB
做过一段状态栏颜色适配,纯色的基本在style直接设置就可以了,
不过最近效果图有一种效果要求 是在状态栏部分也显示内容部分,
像下面这样
综合评分:5
下载个数:
{%username%}回复{%com_username%}{%time%}\
/*点击出现回复框*/
$(".respond_btn").on("click", function (e) {
$(this).parents(".rightLi").children(".respond_box").show();
e.stopPropagation();
$(".cancel_res").on("click", function (e) {
$(this).parents(".res_b").siblings(".res_area").val("");
$(this).parents(".respond_box").hide();
e.stopPropagation();
/*删除评论*/
$(".del_comment_c").on("click", function (e) {
var id = $(e.target).attr("id");
$.getJSON('/index.php/comment/do_invalid/' + id,
function (data) {
if (data.succ == 1) {
$(e.target).parents(".conLi").remove();
alert(data.msg);
$(".res_btn").click(function (e) {
var parentWrap = $(this).parents(".respond_box"),
q = parentWrap.find(".form1").serializeArray(),
resStr = $.trim(parentWrap.find(".res_area_r").val());
console.log(q);
//var res_area_r = $.trim($(".res_area_r").val());
if (resStr == '') {
$(".res_text").css({color: "red"});
$.post("/index.php/comment/do_comment_reply/", q,
function (data) {
if (data.succ == 1) {
var $target,
evt = e || window.
$target = $(evt.target || evt.srcElement);
var $dd = $target.parents('dd');
var $wrapReply = $dd.find('.respond_box');
console.log($wrapReply);
//var mess = $(".res_area_r").val();
var mess = resS
var str = str.replace(/{%header%}/g, data.header)
.replace(/{%href%}/g, 'http://' + window.location.host + '/user/' + data.username)
.replace(/{%username%}/g, data.username)
.replace(/{%com_username%}/g, data.com_username)
.replace(/{%time%}/g, data.time)
.replace(/{%id%}/g, data.id)
.replace(/{%mess%}/g, mess);
$dd.after(str);
$(".respond_box").hide();
$(".res_area_r").val("");
$(".res_area").val("");
$wrapReply.hide();
alert(data.msg);
}, "json");
/*删除回复*/
$(".rightLi").on("click", '.del_comment_r', function (e) {
var id = $(e.target).attr("id");
$.getJSON('/index.php/comment/do_comment_del/' + id,
function (data) {
if (data.succ == 1) {
$(e.target).parent().parent().parent().parent().parent().remove();
$(e.target).parents('.res_list').remove()
alert(data.msg);
//填充回复
function KeyP(v) {
var parentWrap = $(v).parents(".respond_box");
parentWrap.find(".res_area_r").val($.trim(parentWrap.find(".res_area").val()));
评论共有14条
很好的资源,学习了
学习了,谢谢
资源不错,学习了
VIP会员动态
CSDN下载频道资源及相关规则调整公告V11.10
下载频道用户反馈专区
下载频道积分规则调整V1710.18
spring mvc+mybatis+mysql+maven+bootstrap 整合实现增删查改简单实例.zip
资源所需积分/C币
当前拥有积分
当前拥有C币
输入下载码
为了良好体验,不建议使用迅雷下载
Android内容覆盖透明状态栏下实现全屏模式下带状态栏的效果
会员到期时间:
剩余下载个数:
剩余积分:0
为了良好体验,不建议使用迅雷下载
积分不足!
资源所需积分/C币
当前拥有积分
您可以选择
程序员的必选
绿色安全资源
资源所需积分/C币
当前拥有积分
当前拥有C币
为了良好体验,不建议使用迅雷下载
资源所需积分/C币
当前拥有积分
当前拥有C币
为了良好体验,不建议使用迅雷下载
资源所需积分/C币
当前拥有积分
当前拥有C币
您的积分不足,将扣除 10 C币
为了良好体验,不建议使用迅雷下载
无法举报自己的资源
你当前的下载分为234。
你还不是VIP会员
开通VIP会员权限,免积分下载
你下载资源过于频繁,请输入验证码
您因违反CSDN下载频道规则而被锁定帐户,如有疑问,请联络:!
若举报审核通过,可返还被扣除的积分
被举报人:
举报的资源分:
请选择类型
资源无法下载 ( 404页面、下载失败、资源本身问题)
资源无法使用 (文件损坏、内容缺失、题文不符)
侵犯版权资源 (侵犯公司或个人版权)
虚假资源 (恶意欺诈、刷分资源)
含色情、危害国家安全内容
含广告、木马病毒资源
*详细原因:
Android内容覆盖透明状态栏下实现全屏模式下带状态栏的效果&nbsp>&nbsp
&nbsp>&nbsp
&nbsp>&nbsp
Android 系统状态栏沉浸式/透明化完整解决方案
摘要:前言网上已经有很多有关于系统状态栏的解决方案,这篇文章也不会有什么新奇的解决方案,都是本人经过自己试验,统计提炼出来的相对靠谱的一套解决方案.如果是android大牛可以忽略本文,怕让您贱笑.只面向小白,帮助小白减少摸索的时间.关于术语网上有很多争论:你这状态栏是变色龙状态栏,不是沉浸式的这应该是沉浸式的状态栏吧,系统栏与actionbar颜色设为一致我只想说去你妹的,老子只要自己的app的状态栏能和主题颜色一致就行了,定义那么多术语,让我等小白情以何堪?吐槽归吐槽,但还是不
网上已经有很多有关于系统状态栏的解决方案,这篇文章也不会有什么新奇的解决方案,都是本人经过自己试验,统计提炼出来的相对靠谱的一套解决方案.如果是android大牛可以忽略本文,怕让您贱笑.只面向小白,帮助小白减少摸索的时间.
网上有很多争论:
你这状态栏是变色龙状态栏,不是沉浸式的这应该是沉浸式的状态栏吧,系统栏与actionbar颜色设为一致
我只想说去你妹的,老子只要自己的app的状态栏能和主题颜色一致就行了,定义那么多术语,让我等小白情以何堪?吐槽归吐槽,但还是不得不去试着理解下这些术语怎么来的,引用这里的一段话:
沉浸式全屏模式
隐藏status bar(状态栏)使屏幕全屏,让Activity接收所有的(整个屏幕的)触摸事件。
透明化系统状态栏
透明化系统状态栏,使得布局侵入系统栏的后面,必须启用fitsSystemWindows属性来调整布局才不至于被系统栏覆盖。
因此,我就这样理解了:
沉浸式不就是隐藏状态栏嘛,状态栏不见了?这不就是app全屏模式嘛?wtf?
而透明式式状态栏就是让app的内容布局可以扩展到系统状态栏?这里有个问题就是为什么能在系统状态栏还显示的情况下,将内容布局扩展到系统状态栏?恩,这应该很好理解,就是Z坐标系的作用了,系统状态栏是覆盖在内容布局上面的,并且是透明的。
貌似这里所谓透明化系统状态栏才是本菜想要的,不管了,现在开始一一试验,至于这概念理解的对不对,管他呢?那到底应该叫什么,那我就叫自适应状态栏,行不行?
让系统状态栏颜色随app主题颜色变化而变化这一设计,毫无疑问,也是向ios学习的:从android4.4开始引进的,并且在5.0进行了改进。因此,也只能将这一特性应用在android4.4以上的手机,无法做到全部适配。记得stormzhang(貌似是)曾说过:
作为一个android程序员,还能有什么比做出ios风格的app更感到悲哀的呢?哎...
两种情况下的解决方案:
使用toolbar
这种方案相对简单,个人喜欢这种方案,本菜虽菜,但喜欢紧跟潮流。toolbar太好用了,
不使用toolbar
1. 使用toolbar的解决方案
这个方法参照了这里,薄荷app的toolbar适配方案
其基本原理就是:theme里添加style: &item name=&android:windowTranslucentStatus&& true &/item&后,包含toolbar的内容布局就可以扩展至系统状态栏,状态栏会覆盖在toolbar上,如果此时使用android:fitsSystemWindows=&true&,就可以调整内容布局(估计也是在根布局上加padding)恢复到原来位置.但是,上面的解决方案确是给toolbar加上一个padding-top=&25dp&,这样就可以做到系统状态栏的颜色和toolbar的颜色保持一致.具体方案可以参照上面的薄荷app的方案链接.
简述下步骤(只是简述,有疑问请参照上面薄荷app的链接即可):
引入v7包,并在布局里添加toolbar compile ‘com.android.support:appcompat-v7:22.2.1’
在代码中设置透明化: if (Build.VERSION.SDK_INT &= Build.VERSION_CODES.KITKAT) {
WindowManager.LayoutParams localLayoutParams = getWindow().getAttributes();
local LayoutParams.flags = (WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS | localLayoutParams.flags);
当然也可以在theme的样式文件里添加style:&item name=&android:windowTranslucentStatus&&true&/item&,效果相同,但是大神们都说样式文件里设置在某些型号里不生效.ok,大家都在代码里设置就好了
给toolbar加上padding-top,toolbar代码如下 &android.support.v7.widget.Toolbar android:id=&@+id/toolbar&
android:layout_width=&match_parent&
android:layout_height=&wrap_content&
android:paddingTop=&@dimen/toolbar_padding_top&
app:popupTheme=&@style/ThemeOverlay.AppCompat.Light&
app:theme=&@style/ThemeOverlay.AppCompat.Dark.ActionBar&
android:background=&#30469b&&
&TextView android:layout_gravity=&center&
android:layout_width=&wrap_content&
android:layout_height=&wrap_content&
android:textSize=&20sp&
android:text=&@string/app_name&/&
&/android.support.v7.widget.Toolbar&
4.其中android:paddingTop=&@dimen/toolbar_padding_top&要在values中的styles文件里设为0dp,在values-v19的styles里设为25dp,原因不多说了
这样就可以达成了我们的目标,如果只是这样也就罢了,按照上面做就可以了,关键是本菜是喜欢紧跟潮流的,使用MD风格的DrawerLayout+NavigationView时,在android4.4的手机下,就会变这样了:
android4.4上的效果
很明显,drawerlayout并没用被扩展至系统状态栏,但在android5.0以上效果还是可以的,这让我很奇怪,只能归咎于5.0的优化了
android5.0上的效果
经过各种折腾终于想起来,可以把fitsSystemWindows的特性用在drawerlayout上试试,最后发现居然可以,最终将设置windowTranslucentStatus的代码调整如下:
if (Build.VERSION.SDK_INT &= Build.VERSION_CODES.KITKAT) {
WindowManager.LayoutParams localLayoutParams = getWindow().getAttributes();
local LayoutParams.flags = (WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS | localLayoutParams.flags);
if(Build.VERSION.SDK_INT & Build.VERSION_CODES.LOLLIPOP){
//将侧边栏顶部延伸至status bar
mDrawerLayout.setFitsSystemWindows(true);
//将主页面顶部延伸至虽默认为false,但经测试,DrawerLayout需显示设置
mDrawerLayout.setClipToPadding(false);
最终android4.4上也可以显示正常:
android4.4上修正后的效果
2. 不使用toolbar的解决方案
不使用toolbar时,而是actionbar时,因为actionbar不好定制,所以无法采用上面那个方法,只能采用其它方法,这里的方案主要参考这里:Translucent System Bar 的最佳实践这篇简书看的本菜晕乎乎的,仔细看下来,其实都是基于一个原理:不管有没有actionbar,内容布局的背景颜色一律设为主题颜色,然后有actionbar的话,就将actionbar与内容布局的背景颜色同时设为主题颜色,然后,每个内容布局的根布局都要设上fitsSystemWindows=&true&进行调整,感觉超麻烦有没有?
不说多少,简述步骤:
在代码中设置透明化,步骤同上
设置内容布局的根布局的背景颜色为主题颜色,同时设置fitsSystemWindows=&true& &LinearLayout xmlns:android=&http://schemas.android.com/apk/res/android&
android:layout_width=&match_parent&
android:layout_height=&match_parent&
android:background=&@color/colorPrimary&
android:fitsSystemWindows=&true&
android:orientation=&vertical&&
在内容布局的下面再设置一层内容布局,设背景颜色为白色(或其它颜色): &LinearLayout android:layout_width=&match_parent&
android:layout_height=&match_parent&
android:background=&@color/c_light_white&
android:gravity=&center&
android:orientation=&vertical&&
至此,这种方案也完成了,看下效果:
android4.4上的效果
可以看出,这种方案一般情况下,还是可行的,但是有三个问题:
如果用上drawerlayout+navigationview,actionbar就会覆盖在侧边栏上(如上图),暂时未找到解决方案,但是我想说你都用drawerlayout+navigationview了,为何不用toolbar,因此这个问题应该不是问题,况且还可以使用其它的侧边栏实现方式,各位道友可以试试
这种方案在每个根布局上都要设fitsSystemWindows=&true&进行调整,当然上面也有优化方案,可仍然觉得很麻烦,
每个根布局里都要多加的一层布局来覆盖根布局的背景主题颜色
因此,这种方案的确不是上上之选.
本文主要在考虑使用标题栏(actionbar/toolbar)的情况下,做出的方案,当然你也可以自定义标题栏,或者不使用标题栏;其实都可以基于上面一样的道理:
在状态栏透明化的前提下,调整顶部view的padding-top,来达到状态栏自适应一体化的目的
网上还有其它蛮多的解决方案,如:
使用开源库SystemBarTint,这个库也挺不错的,可以动态改变系统状态栏颜色,但是作者已经2年没有维护了,现在技术更新迭代这么快,鬼知道这个库会不会出现什么问题,因此可以放弃使用了
如果不怕麻烦,还可以new一个高度和状态栏一样高的view,插入到内容布局的上面,但是,想想都觉得麻烦,我也懒得试了
关于本文中的样例代码已上传至github,欢迎star,有问题也欢迎各位撸友,道友们来指正.
以上是的内容,更多
的内容,请您使用右上方搜索功能获取相关信息。
若你要投稿、删除文章请联系邮箱:zixun-group@service.aliyun.com,工作人员会在五个工作日内给你回复。
云服务器 ECS
可弹性伸缩、安全稳定、简单易用
&40.8元/月起
预测未发生的攻击
&24元/月起
为您提供0门槛上云实践机会
你可能还喜欢
你可能感兴趣
阿里云教程中心为您免费提供
Android 系统状态栏沉浸式/透明化完整解决方案相关信息,包括
的信息,所有Android 系统状态栏沉浸式/透明化完整解决方案相关内容均不代表阿里云的意见!投稿删除文章请联系邮箱:zixun-group@service.aliyun.com,工作人员会在五个工作日内答复
售前咨询热线
支持与服务
资源和社区
关注阿里云
International}

我要回帖

更多关于 安卓透明色 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信