Android:快餐店未正确显示在SupportMapFragment顶部
活动中使用的布局(适用于谷歌地图) 以下是屏幕截图和一些症状:Android:快餐店未正确显示在SupportMapFragment顶部,android,kotlin,android-coordinatorlayout,supportmapfragment,Android,Kotlin,Android Coordinatorlayout,Supportmapfragment,活动中使用的布局(适用于谷歌地图) 以下是屏幕截图和一些症状: 对于标记的初始单击: 请注意黑色细线条。那是小吃店。 但是如果我点击地图主体中的任何地方,而不是一个标记,小吃店就会变得正常 更重要的是,如果我将uiSettings.isMapToolbarEnabled设置为false,默认工具栏将被隐藏,但快餐店从未出现。我甚至根本看不到那条黑色的细线,不管我发出什么样的声音 this.googleMap?.uiSettings?.isMapToolbarEnabled = false 一
对于标记的初始单击: 请注意黑色细线条。那是小吃店。
但是如果我点击地图主体中的任何地方,而不是一个标记,小吃店就会变得正常 更重要的是,如果我将uiSettings.isMapToolbarEnabled设置为false,默认工具栏将被隐藏,但快餐店从未出现。我甚至根本看不到那条黑色的细线,不管我发出什么样的声音
this.googleMap?.uiSettings?.isMapToolbarEnabled = false
一个类似的问题。
我拍摄的手机截图是Nexus5。原生安卓6.0.1,Nexus 5可以支持的最新操作系统。根本原因已经基本找到。在全屏模式下,快餐店被SystemUI隐藏。人们可以很容易地复制这个问题 在我的例子中,以下是导致问题的代码片段
override fun onWindowFocusChanged(hasFocus: Boolean) {
super.onWindowFocusChanged(hasFocus)
if (hasFocus) hideSystemUI()
}
private fun hideSystemUI() {
window.decorView.systemUiVisibility = (
View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY
// or View.SYSTEM_UI_FLAG_LAYOUT_STABLE
// or View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
// or View.SYSTEM_UI_FLAG_FULLSCREEN
// to hide the nav bar and status bar
or View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
or View.SYSTEM_UI_FLAG_FULLSCREEN)
}
模式SYSTEM\u UI\u FLAG\u IMMERSIVE
和SYSTEM\u UI\u FLAG\u IMMERSIVE\u STICKY
几乎一直隐藏快餐店,如问题主体所述,无论用户如何或在何处单击而第三个全屏模式(不带任何一个标志),即向后倾斜模式(),只从第二次单击中响应用户的有效快餐店。通过显示SystemUI的状态栏和导航栏,来自用户的第一次单击将作为从精益模式返回使用。
所以现在这个问题的一个快速解决方案是禁用沉浸式标志。但我对此并不满意。将继续寻找更好的答案。
更重要的是,我尝试了Stackoverflow的解决方案,或者通过设置适当的z索引,或者
LayoutParam
,这些都没有达到我想要的效果:在沉浸式(粘性)全屏上显示一个快餐店
更新日期:20191102:
据英国《每日邮报》报道,快餐店不被认为是显示太多文本的合适方式,也不建议使用图标。我应该依赖的适当的UI组件是。基本上已经找到了根本原因。在全屏模式下,快餐店被SystemUI隐藏。人们可以很容易地复制这个问题 在我的例子中,以下是导致问题的代码片段
override fun onWindowFocusChanged(hasFocus: Boolean) {
super.onWindowFocusChanged(hasFocus)
if (hasFocus) hideSystemUI()
}
private fun hideSystemUI() {
window.decorView.systemUiVisibility = (
View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY
// or View.SYSTEM_UI_FLAG_LAYOUT_STABLE
// or View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
// or View.SYSTEM_UI_FLAG_FULLSCREEN
// to hide the nav bar and status bar
or View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
or View.SYSTEM_UI_FLAG_FULLSCREEN)
}
模式SYSTEM\u UI\u FLAG\u IMMERSIVE
和SYSTEM\u UI\u FLAG\u IMMERSIVE\u STICKY
几乎一直隐藏快餐店,如问题主体所述,无论用户如何或在何处单击而第三个全屏模式(不带任何一个标志),即向后倾斜模式(),只从第二次单击中响应用户的有效快餐店。通过显示SystemUI的状态栏和导航栏,来自用户的第一次单击将作为从精益模式返回使用。
所以现在这个问题的一个快速解决方案是禁用沉浸式标志。但我对此并不满意。将继续寻找更好的答案。
更重要的是,我尝试了Stackoverflow的解决方案,或者通过设置适当的z索引,或者
LayoutParam
,这些都没有达到我想要的效果:在沉浸式(粘性)全屏上显示一个快餐店
更新日期:20191102:
据英国《每日邮报》报道,快餐店不被认为是显示太多文本的合适方式,也不建议使用图标。我应该依赖的适当UI组件是
override fun onWindowFocusChanged(hasFocus: Boolean) {
super.onWindowFocusChanged(hasFocus)
if (hasFocus) hideSystemUI()
}
private fun hideSystemUI() {
window.decorView.systemUiVisibility = (
View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY
// or View.SYSTEM_UI_FLAG_LAYOUT_STABLE
// or View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
// or View.SYSTEM_UI_FLAG_FULLSCREEN
// to hide the nav bar and status bar
or View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
or View.SYSTEM_UI_FLAG_FULLSCREEN)
}