随着科技的进步几乎每个人身上都会带着智能手机,而且基本都会携带百度地图和高得地图等,只要学会他们的操作步骤相信你一定会学会怎么用手机导航!
1、在使用手机地图之前我们首先打开手机的定位,这样在使用之前就能自动定位到自己坐在的位置,然后点击搜索,输入自己的目的地。
2、输入目的地,,输入位置以后点击位置后边的导航符号,去这里 按键,地图会自动设计出行的路线。
3、手机地图快速规划出了最优路线,我们点击导航就能顺着路线到达目的地。路线往往有很多条,可以根据实际情况自己选择。
4、导航还会根据出行工具选择路线,出行工具有很多,如果有自驾车就选择轿车,接着就会出现轿车最佳路线,还有预计到达目的地的时间。还有公交车,火车,飞机等,丰富大家的出行。
5、当开始以后会进入导航模式,需要根据实际情况指示方向,手机地图会语音播报路线,在特定的路口让驾驶员转向,还有摄像头等,可以说出门必备品之一啊。
还有要提醒大家,在外出行要注意安全哦!!!
目前常用的沉浸式状态栏的适配一般都是,style中配置
<item name="android:windowTranslucentNavigation">false</item>
<item name="android:windowTranslucentStatus">true</item>
又或者设置window的flag,如:
if (BuildVERSIONSDK_INT >= 21) {
int option = ViewSYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
| ViewSYSTEM_UI_FLAG_LAYOUT_STABLE;
decorViewsetSystemUiVisibility(option);
windowsetStatusBarColor(ColorTRANSPARENT);
}
然后配合 : fitsSystemWindows = true来解决部分控件不需要沉浸的问题
当然还有更野的,直接固定状态栏高度,比如tim,网易云音乐,手机淘宝等
当状态栏高度为0时,瞬间就暴露出来了,当然也有做的好的,比如微信,等
在实际开发中这些api是完全无法满足我们对视觉的追求,其中最常见的就是首页,有的tab需要沉浸式,有些不需要,就完全无法完美实现
然后就是虚拟导航栏了,设置
<item name="android:windowTranslucentNavigation">true</item> 后,布局会沉入导航栏,还有一些其它的问题,解决起来也还不算太麻烦,这里就不详细说了
还有一个就是虚拟键盘弹起时,布局被盖住,或者弹起的问题了,当然这个也很好解决
只需要设置android:windowSoftInputMode="adjustResize" 或者 adjustPan就可以轻松解决绝大多数问题
虽然上面的3个问题都可以或复杂,或简单的解决,但是想要实现一些高要求的需求时就有些无力了
如果能够监听到状态栏,导航栏,虚拟键盘高度的变化,是不是这些都可以迎刃而解,而且还能实现一些更有意思的功能
如何才能监听到状态栏,导航栏,虚拟键盘高度的变化呢
接下来我们先研究研究系统是如何处理这些问题的
首先我们先用布局查看器来查看界面的布局
可以看到,在未设置沉浸式状态栏时,对第decorView的第0个view设置paddingtop和marginBottom,同时再在上面覆盖两个view来充当状态栏和导航栏的颜色
当输入法弹起时同样是对第decorView的第0个view设置paddingBottom来实现的,这说明decorView的第0个view是可以监听到我们想要的东西的
通过查看系统源码,终于让我找到了vew的dispatchApplyWindowInsets这个方法
仔细查看了一下这个源码
终于让我找到了给view设置padding的方法
同时发现decorView重新了onApplyWindowInsets方法,并在这里添加了充当状态栏和导航栏颜色的背景view
decorView共有5处调用addView的逻辑,具体如何实现的就不深究了
既然知道了系统的处理方案接下来我们只需在系统调用dispatchApplyWindowInsets时我们能收到相应的监听就可以了
还好系统为我们提供了setOnApplyWindowInsetsListener方法
我们验证下我们的成果
到这里,要讲的核心东西已经讲完了,只剩下使用问题了
至于如何使用可以根据个人情况,进行自行选择这里只介绍两种使用方式
这里先警告一下,setOnApplyWindowInsetsListener后会破坏系统的事件传递机制
不过可以通过手动调用onApplyWindowInsets来进行解决
val viewGroup = windowdecorView as ViewGroup
viewGroupsetOnApplyWindowInsetsListener { v, insets ->
println("--------$insets")
vpost {
//在这里动态通知需要适配状态栏,导航栏,输入法弹起的控件
}
vonApplyWindowInsets(insets)
}
2完全中断系统的适配方案,由我们自行处理,如:
val viewGroup = windowdecorView as ViewGroup
viewGroup[0]setOnApplyWindowInsetsListener { v, insets ->
println("--------$insets")
vpost {
//在这里动态通知需要适配状态栏,导航栏,输入法弹起的控件
insetsrun {
//视情况而定
// vsetPadding(stableInsetLeft, stableInsetTop, stableInsetRight, stableInsetBottom)
vsetPadding(systemWindowInsetLeft, systemWindowInsetTop, systemWindowInsetRight, 0)
val h = findViewById<View>(RidllBottom)height : 0
findViewById<View>(RidflEt)setPadding(0,0,0,systemWindowInsetBottom-h)
}
}
insetsconsumeSystemWindowInsets()
}
至于为什么要在decorView 的第0个view进行监听自行研究体会
其中第二种方式可以在不需要对activity进行任何style或者flag的设置就可以实现沉浸式状态栏效果可玩性也更强如果配上
<item name="android:windowTranslucentNavigation">true</item>那可玩性就更强了至于能发挥到什么程度就看各人的想法了
至此,所有的东西都已经写完了
最后介绍一个可以实现的场景:
在输入法弹起时,我们可以自定义我们需要顶起的控件
导航栏在网站当中起到的作用是非常大的,就相当对是指路牌,可以引导用户快速的到达想要浏览的地方,让用户使用短的时间找到所需要的内容。当然在导航当中并不能将网站内的所有内容都进行一一的展示,但是合理的导航设置却可以让用户在浏览网站的时候,得到事半功倍的效果,因此对于网站导航栏的设置是网站建设当中需要注意的地方。
一、建设网站初期选择好导航的表现形式
对于网站建设当中的导航设置,往往都是根据网站内容来决定的,对于大多数的网站来讲,水平式的导航也是为常见的,而且水平式导航栏的优点在对于些内容较少的网站上来讲,更加能够突现出网站的重点。而对于内容相对比较多的网站来讲,就需要考虑下拉式的导航形式来进行表现。
二、导航栏通常采用文字的形式
导航栏对于网站的作用,许多网站建设者都能够理解这个重要性,因此许多的网站开发者就企图采用一些或者是动画的处理方式来进行展现,虽然这样的导航栏会让人觉得有炫酷的感觉,但是在网站的后续运行当中,却非常不利于网站速度的加载,让用户在浏览网页时感觉到网站速度过慢,降低用户对网站的体验感。因此导航栏的内容设置都是采用文字的形式。
三、导航分类的数量代表了网站内容的多少
对于内容比较多的网站来讲,会采用下拉式的导航设置,而导航栏的数量设置也是决定了网站内容主要分为哪几个部分的一个重要体现。对于导航栏的设置,不仅仅要让用户在短的时间内找到自己想要获得的信息,同时也不能让用户感觉到导航栏当中内容过多,引起用户浏览反感。
四、导航内链设置要准确
导航栏的作用就是为用户提供准确的链接内容,因此在导航栏内容设置好之后,对于导航的内容内链接也要做到准确细致,以免用户通过导航栏打开的内链不是想要的内容。
网站建设网站制作以Word为例,导航栏位于页面顶部或者侧边区域。导航栏是指在页眉横幅上边或下边的一排水平导航按钮,它起着链接站点或者软件内的各个页面的作用。
Microsoft Office Word是微软公司的一个文字处理器应用程序。它最初是由Richard Brodie为了运行DOS的IBM计算机而在1983年编写的。随后的版本可运行于Apple Macintosh (1984年)、SCO UNIX和Microsoft Windows (1989年),并成为了Microsoft Office的一部分。
Word给用户提供了用于创建专业而优雅的文档工具,帮助用户节省时间,并得到优雅美观的结果。一直以来,Microsoft Office Word 都是最流行的文字处理程序。作为 Office 套件的核心程序, Word 提供了许多易于使用的文档创建工具,同时也提供了丰富的功能集供创建复杂的文档使用。哪怕只使用 Word 应用一点文本格式化操作或处理,也可以使简单的文档变得比只使用纯文本更具吸引力。
欢迎分享,转载请注明来源:品搜搜测评网