android 点击状态栏,“点击状态栏回到顶部”功能的消失原因和实现

news/2024/12/22 22:41:11/

苹果系统为我们带来了一个很便利的功能,在长长的页面拖拽过程中,至于要点击一下顶部状态栏,便能回到页面最顶部,省去了漫长的滑动过程。但是有时在开发中,会遇到点击返回功能消失的现在,下面简单说说原因以及几种重现的方法。

先从实现方法说起,如果要恢复功能,首先我们第一个应该都是想到利用状态栏的属性或者方法,是否能直接实现。但是我们可以发现,UIStatusBar是不能点击去查看头文件的,那就意味着苹果并没有把这个属性暴露给我们,那么按照套路,必须得自己来解决。

那么思考方向可以为,如果让我们来写这个功能,那么应该如何实现?首先最简单的想法可以想到在状态栏上面添加一个等大的UIView,挡住原来状态栏的位置,用来拦截点按手势,并在实现方法中把偏移量(contentOffset)的Y值改为0来实现复位。

d5b7195e0c37

但是实际操作中我们可以发现,无论怎么添加,view始终会在状态栏下面,无法挡住状态栏。

d5b7195e0c37

其实究其原因,状态栏本质上是一个窗口(window)而不是一个控件,窗口与窗口之间没有了层级关系,所以这个方法并不能达到目的。但是按照这个方向,那我们可以继续考虑,直接创建一个窗口(UIWindow)代替UIView添加到状态栏上面来挡住系统状态栏。


http://www.ppmy.cn/news/804548.html

相关文章

【CSS 28】animations 动画 @keyframes规则 延迟动画 运行次数 反向or交替 速度曲线 填充模式 简写属性

CSS animations 动画 animations 动画 CSS 可实现 HTML 元素的动画效果,而不使用 JavaScript 或 Flash 下面我们将使用到下面的属性: keyframesanimation-nameanimation-durationanimation-delayanimation-iteration-countanimation-directionanimati…

Vue 适配iOS、Android顶部状态栏(沉浸式,混合APP开发)

1、获取高度、赋值 移动端通过拼接到ua信息里传递给web前端 安卓手机的全面屏有些特殊,高度会莫名多一截儿(为啥特殊我也不知道, 仙女叹气ε=(ο`*)))唉!有知道的友友们 ,欢迎在评论区留言哦~),所以单独做了些处理,具体看代码 //判断屏幕是否为全面屏 export function …

苹果状态栏HTML,webview内嵌的html页面,在ios系统上12以上版本和12以下版本状态栏效果不一样...

详细问题描述 (DCloud产品不会有明显的bug,所以你遇到的问题大都是在特定环境下才能重现的问题,请仔细描述你的环境和重现方式,否则DCloud很难排查解决你的问题) [内容] 重现步骤 在vue页面使用webview组件,内嵌HTML页面&#xff…

Flutter 沉浸式状态栏

Flutter 沉浸式状态栏 flutter项目运行起来,在ios上显示是没有最上边的半透明阴影,在android上状态栏有是有黑色阴影的。 去掉状态栏阴影如下: import dart:io; //提供Platform接口 import package:flutter/services.dart; //提供SystemUi…

如何获取iPhone 各机型以及系统的状态栏高度进行适配

在iPhone x以前苹果手机的各机型状态栏高度均为20;在iPhone x以后苹果新推出刘海屏机型,苹果的各机型状态栏高度均为44。但是今年苹果随着苹果新操作系统iOS 14的推出导致了iPhone x以后的部分苹果刘海屏机型状态栏的高度的改变有的为47,有的…

ios 设置状态栏颜色

UIView *statusBar [[[UIApplication sharedApplication] valueForKey:"statusBarWindow"] valueForKey:"statusBar"]; if ([statusBar respondsToSelector:selector(setBackgroundColor:)]) { statusBar.backgroundColor ColorRed; }

html设置ios状态栏颜色,iOS 修改状态栏颜色

iOS中修改状态颜色在iOS9后官方废弃了下面这种方法 [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleDefault]; //‘setStatusBarStyle:‘ is deprecated: first deprecated in iOS 9.0 - Use -[UIViewController preferredStatusBarStyle] [[UIApplica…

关于微信小程序自定义导航栏时,如何获取手机状态栏和导航栏高度

微信小程序导航栏状态栏可修改项 在微信小程序中,能修改状态栏和导航栏的样式,只能修改背景色、文字颜色(只支持白色/黑色)、和标题文字。 navigationStyle 可以控制是否显示导航栏。如果设置为custom,则没有状态栏&…