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

本文介绍了在Android开发中,如何实现点击状态栏回到页面顶部的功能,以及该功能可能消失的原因。通过创建自定义窗口并调整窗口级别,以及设置ScrollView的相关属性,可以成功实现这一功能。同时,分析了由于多个ScrollView导致功能失效的问题,并提供了解决方案。
摘要由CSDN通过智能技术生成

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

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

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

d5b7195e0c37

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

d5b7195e0c37

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值