Commit df19766b authored by 马乐's avatar 马乐

1.修复对话框关闭后导航栏重新显示的问题

parent f0aca520
...@@ -12,14 +12,17 @@ import androidx.lifecycle.repeatOnLifecycle ...@@ -12,14 +12,17 @@ import androidx.lifecycle.repeatOnLifecycle
import androidx.navigation.fragment.findNavController import androidx.navigation.fragment.findNavController
import com.blankj.utilcode.util.BarUtils import com.blankj.utilcode.util.BarUtils
import com.blankj.utilcode.util.LogUtils import com.blankj.utilcode.util.LogUtils
import com.mapbox.android.gestures.StandardScaleGestureDetector
import com.mapbox.geojson.Point import com.mapbox.geojson.Point
import com.mapbox.maps.CameraOptions import com.mapbox.maps.CameraOptions
import com.mapbox.maps.MapboxMap import com.mapbox.maps.MapboxMap
import com.mapbox.maps.ScreenCoordinate
import com.mapbox.maps.Style import com.mapbox.maps.Style
import com.mapbox.maps.ViewAnnotationAnchor import com.mapbox.maps.ViewAnnotationAnchor
import com.mapbox.maps.extension.style.layers.properties.generated.IconAnchor import com.mapbox.maps.extension.style.layers.properties.generated.IconAnchor
import com.mapbox.maps.extension.style.style import com.mapbox.maps.extension.style.style
import com.mapbox.maps.plugin.animation.flyTo import com.mapbox.maps.plugin.animation.flyTo
import com.mapbox.maps.plugin.animation.scaleBy
import com.mapbox.maps.plugin.annotation.AnnotationConfig import com.mapbox.maps.plugin.annotation.AnnotationConfig
import com.mapbox.maps.plugin.annotation.annotations import com.mapbox.maps.plugin.annotation.annotations
import com.mapbox.maps.plugin.annotation.generated.PointAnnotationManager import com.mapbox.maps.plugin.annotation.generated.PointAnnotationManager
...@@ -27,7 +30,10 @@ import com.mapbox.maps.plugin.annotation.generated.PointAnnotationOptions ...@@ -27,7 +30,10 @@ import com.mapbox.maps.plugin.annotation.generated.PointAnnotationOptions
import com.mapbox.maps.plugin.annotation.generated.createPointAnnotationManager import com.mapbox.maps.plugin.annotation.generated.createPointAnnotationManager
import com.mapbox.maps.plugin.attribution.attribution import com.mapbox.maps.plugin.attribution.attribution
import com.mapbox.maps.plugin.compass.compass import com.mapbox.maps.plugin.compass.compass
import com.mapbox.maps.plugin.gestures.OnScaleListener
import com.mapbox.maps.plugin.gestures.addOnScaleListener
import com.mapbox.maps.plugin.logo.logo import com.mapbox.maps.plugin.logo.logo
import com.mapbox.maps.plugin.scalebar.scalebar
import com.mapbox.maps.viewannotation.ViewAnnotationManager import com.mapbox.maps.viewannotation.ViewAnnotationManager
import com.mapbox.maps.viewannotation.viewAnnotationOptions import com.mapbox.maps.viewannotation.viewAnnotationOptions
import com.waytous.anticollision.R import com.waytous.anticollision.R
...@@ -193,6 +199,7 @@ open class BaseMapFragment : Fragment() { ...@@ -193,6 +199,7 @@ open class BaseMapFragment : Fragment() {
LogUtils.d("setupMapBox") LogUtils.d("setupMapBox")
mapboxMap = layoutMapBoxBinding.mapView.getMapboxMap().also { mapboxMap = layoutMapBoxBinding.mapView.getMapboxMap().also {
it.setCamera(cameraOptions) it.setCamera(cameraOptions)
} }
layoutMapBoxBinding.zoomIn.setOnClickListener { layoutMapBoxBinding.zoomIn.setOnClickListener {
val zoomLevel = BigDecimal(mapboxMap.cameraState.zoom).minus(BigDecimal(0.1.toString())) val zoomLevel = BigDecimal(mapboxMap.cameraState.zoom).minus(BigDecimal(0.1.toString()))
...@@ -205,6 +212,7 @@ open class BaseMapFragment : Fragment() { ...@@ -205,6 +212,7 @@ open class BaseMapFragment : Fragment() {
mapboxMap.setCamera(CameraOptions.Builder().zoom(DEFAULT_ZOOM_LEVEL).build()) mapboxMap.setCamera(CameraOptions.Builder().zoom(DEFAULT_ZOOM_LEVEL).build())
} }
} }
LogUtils.d("zoom in:${layoutMapBoxBinding.mapView.scalebar.distancePerPixel}")
} }
layoutMapBoxBinding.zoomOut.setOnClickListener { layoutMapBoxBinding.zoomOut.setOnClickListener {
val zoomLevel = BigDecimal(mapboxMap.cameraState.zoom).add(BigDecimal(0.1.toString())) val zoomLevel = BigDecimal(mapboxMap.cameraState.zoom).add(BigDecimal(0.1.toString()))
...@@ -217,6 +225,7 @@ open class BaseMapFragment : Fragment() { ...@@ -217,6 +225,7 @@ open class BaseMapFragment : Fragment() {
mapboxMap.setCamera(CameraOptions.Builder().zoom(zoomLevel.toDouble()).build()) mapboxMap.setCamera(CameraOptions.Builder().zoom(zoomLevel.toDouble()).build())
} }
} }
LogUtils.d("zoom out:${layoutMapBoxBinding.mapView.scalebar.distancePerPixel}")
} }
layoutMapBoxBinding.locationTruck.setOnClickListener { layoutMapBoxBinding.locationTruck.setOnClickListener {
mapboxMap.flyTo(cameraOptions) mapboxMap.flyTo(cameraOptions)
......
package com.waytous.anticollision.ui.view package com.waytous.anticollision.ui.view
import android.app.Dialog
import android.content.Context import android.content.Context
import android.os.Bundle import android.os.Bundle
import android.view.LayoutInflater import android.view.LayoutInflater
import android.view.WindowManager
import android.widget.RadioGroup import android.widget.RadioGroup
import android.widget.RadioGroup.OnCheckedChangeListener import android.widget.RadioGroup.OnCheckedChangeListener
import androidx.appcompat.app.AlertDialog import androidx.core.view.WindowCompat
import androidx.core.view.WindowInsetsCompat
import com.blankj.utilcode.util.BarUtils import com.blankj.utilcode.util.BarUtils
import com.blankj.utilcode.util.KeyboardUtils
import com.blankj.utilcode.util.LogUtils import com.blankj.utilcode.util.LogUtils
import com.waytous.anticollision.R import com.waytous.anticollision.R
import com.waytous.anticollision.databinding.DialogDelayCauseSelectBinding import com.waytous.anticollision.databinding.DialogDelayCauseSelectBinding
class DelayCauseDialog(context: Context, themeResId: Int) : AlertDialog(context, themeResId) { class DelayCauseDialog(context: Context, themeResId: Int) : Dialog(context, themeResId) {
private lateinit var binding:DialogDelayCauseSelectBinding private lateinit var binding:DialogDelayCauseSelectBinding
...@@ -23,6 +27,7 @@ class DelayCauseDialog(context: Context, themeResId: Int) : AlertDialog(context, ...@@ -23,6 +27,7 @@ class DelayCauseDialog(context: Context, themeResId: Int) : AlertDialog(context,
it.inflate(R.layout.dialog_delay_cause_select,null) it.inflate(R.layout.dialog_delay_cause_select,null)
} }
binding = DialogDelayCauseSelectBinding.inflate(inflater) binding = DialogDelayCauseSelectBinding.inflate(inflater)
KeyboardUtils.toggleSoftInput()
setContentView(binding.root) setContentView(binding.root)
binding.radioGroup1.setOnCheckedChangeListener(DelaySelectItemCheckedListener()) binding.radioGroup1.setOnCheckedChangeListener(DelaySelectItemCheckedListener())
binding.radioGroup2.setOnCheckedChangeListener(DelaySelectItemCheckedListener()) binding.radioGroup2.setOnCheckedChangeListener(DelaySelectItemCheckedListener())
...@@ -38,6 +43,14 @@ class DelayCauseDialog(context: Context, themeResId: Int) : AlertDialog(context, ...@@ -38,6 +43,14 @@ class DelayCauseDialog(context: Context, themeResId: Int) : AlertDialog(context,
} }
} }
override fun show() {
window?.setFlags(WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE, WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE)
super.show()
val controller = window?.let { WindowCompat.getInsetsController(it,it.decorView) }
controller?.hide(WindowInsetsCompat.Type.systemBars())
window?.clearFlags(WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE)
}
inner class DelaySelectItemCheckedListener:OnCheckedChangeListener{ inner class DelaySelectItemCheckedListener:OnCheckedChangeListener{
override fun onCheckedChanged(group: RadioGroup?, checkedId: Int) { override fun onCheckedChanged(group: RadioGroup?, checkedId: Int) {
when(group?.id){ when(group?.id){
......
package com.waytous.anticollision.ui.view package com.waytous.anticollision.ui.view
import android.app.Dialog
import android.content.Context import android.content.Context
import android.os.Build
import android.os.Bundle import android.os.Bundle
import android.view.LayoutInflater import android.view.LayoutInflater
import android.view.View
import android.view.WindowManager
import android.widget.RadioGroup import android.widget.RadioGroup
import android.widget.RadioGroup.OnCheckedChangeListener import android.widget.RadioGroup.OnCheckedChangeListener
import androidx.appcompat.app.AlertDialog import androidx.core.view.ViewCompat
import androidx.core.view.WindowCompat
import androidx.core.view.WindowInsetsCompat
import com.blankj.utilcode.util.BarUtils import com.blankj.utilcode.util.BarUtils
import com.blankj.utilcode.util.KeyboardUtils
import com.blankj.utilcode.util.LogUtils import com.blankj.utilcode.util.LogUtils
import com.blankj.utilcode.util.ScreenUtils
import com.waytous.anticollision.R import com.waytous.anticollision.R
import com.waytous.anticollision.databinding.DialogFaultCauseSelectBinding import com.waytous.anticollision.databinding.DialogFaultCauseSelectBinding
class FaultCauseDialog(context: Context, themeResId: Int) : AlertDialog(context, themeResId) { class FaultCauseDialog(context: Context, themeResId: Int) : Dialog(context, themeResId) {
private lateinit var binding:DialogFaultCauseSelectBinding private lateinit var binding:DialogFaultCauseSelectBinding
...@@ -23,6 +31,7 @@ class FaultCauseDialog(context: Context, themeResId: Int) : AlertDialog(context, ...@@ -23,6 +31,7 @@ class FaultCauseDialog(context: Context, themeResId: Int) : AlertDialog(context,
it.inflate(R.layout.dialog_fault_cause_select,null) it.inflate(R.layout.dialog_fault_cause_select,null)
} }
binding = DialogFaultCauseSelectBinding.inflate(inflater) binding = DialogFaultCauseSelectBinding.inflate(inflater)
KeyboardUtils.toggleSoftInput()
setContentView(binding.root) setContentView(binding.root)
binding.radioGroup1.setOnCheckedChangeListener(FaultCauseItemCheckedListener()) binding.radioGroup1.setOnCheckedChangeListener(FaultCauseItemCheckedListener())
binding.radioGroup2.setOnCheckedChangeListener(FaultCauseItemCheckedListener()) binding.radioGroup2.setOnCheckedChangeListener(FaultCauseItemCheckedListener())
...@@ -37,6 +46,15 @@ class FaultCauseDialog(context: Context, themeResId: Int) : AlertDialog(context, ...@@ -37,6 +46,15 @@ class FaultCauseDialog(context: Context, themeResId: Int) : AlertDialog(context,
} }
} }
override fun show() {
window?.setFlags(WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE, WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE)
super.show()
val controller = window?.let { WindowCompat.getInsetsController(it,it.decorView) }
controller?.hide(WindowInsetsCompat.Type.systemBars())
window?.clearFlags(WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE)
}
inner class FaultCauseItemCheckedListener:OnCheckedChangeListener{ inner class FaultCauseItemCheckedListener:OnCheckedChangeListener{
override fun onCheckedChanged(group: RadioGroup?, checkedId: Int) { override fun onCheckedChanged(group: RadioGroup?, checkedId: Int) {
when(group?.id){ when(group?.id){
......
package com.waytous.anticollision.ui.view package com.waytous.anticollision.ui.view
import android.app.Dialog
import android.content.Context import android.content.Context
import androidx.appcompat.app.AlertDialog
import com.waytous.anticollision.R import com.waytous.anticollision.R
import com.waytous.anticollision.databinding.PopupReportStatusBinding import com.waytous.anticollision.databinding.PopupReportStatusBinding
import razerdp.basepopup.BasePopupWindow import razerdp.basepopup.BasePopupWindow
...@@ -18,13 +18,13 @@ class ReportStatusPopup(context: Context?) : BasePopupWindow(context) { ...@@ -18,13 +18,13 @@ class ReportStatusPopup(context: Context?) : BasePopupWindow(context) {
} }
fun itemDelay(dialog:AlertDialog){ fun itemDelay(dialog:Dialog){
binding.reportDialogDelay.setOnClickListener { binding.reportDialogDelay.setOnClickListener {
dialog.show() dialog.show()
} }
} }
fun itemFault(dialog:AlertDialog){ fun itemFault(dialog: Dialog){
binding.reportDialogFault.setOnClickListener { binding.reportDialogFault.setOnClickListener {
dialog.show() dialog.show()
} }
......
...@@ -23,10 +23,11 @@ ...@@ -23,10 +23,11 @@
app:layout_constraintEnd_toEndOf="parent"/> app:layout_constraintEnd_toEndOf="parent"/>
<androidx.appcompat.widget.AppCompatImageView <androidx.appcompat.widget.AppCompatImageView
android:id="@+id/faultCauseSelectClose" android:id="@+id/faultCauseSelectClose"
android:layout_width="wrap_content" android:layout_width="@dimen/dp_48"
android:layout_height="wrap_content" android:layout_height="@dimen/dp_48"
android:background="@android:color/transparent"
android:contentDescription="@string/close_the_dialog" android:contentDescription="@string/close_the_dialog"
android:src="@drawable/icon_close" app:srcCompat="@drawable/icon_close"
android:layout_marginEnd="@dimen/dp_45" android:layout_marginEnd="@dimen/dp_45"
android:focusable="true" android:focusable="true"
android:clickable="true" android:clickable="true"
...@@ -101,7 +102,7 @@ ...@@ -101,7 +102,7 @@
app:layout_constraintTop_toBottomOf="@id/radioGroup1" app:layout_constraintTop_toBottomOf="@id/radioGroup1"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintBottom_toTopOf="@id/delayCauseEdit"> app:layout_constraintBottom_toTopOf="@id/faultCauseEdit">
<RadioButton <RadioButton
android:id="@+id/itemFaultEdgeReduction" android:id="@+id/itemFaultEdgeReduction"
android:layout_width="@dimen/dp_0" android:layout_width="@dimen/dp_0"
...@@ -148,7 +149,7 @@ ...@@ -148,7 +149,7 @@
</RadioGroup> </RadioGroup>
<androidx.appcompat.widget.AppCompatEditText <androidx.appcompat.widget.AppCompatEditText
android:id="@+id/delayCauseEdit" android:id="@+id/faultCauseEdit"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_44" android:layout_marginTop="@dimen/dp_44"
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment