У меня есть метод, который выполняет действие против щелчка карты, когда я нажимаю на карту, метод пытается установить состояние на STATE_SETTLING
, но оно выдает IllegalArgumentException
Я проверил состояние, если это не такв STATE_HIDDEN
или STATE_SETTLING
& isHideable
равно true
, но выбрасывается java.lang.IllegalArgumentException: Illegal state argument: 2
.Я попытался установить состояние STATE_EXPANDED
, STATE_HALF_EXPENDED
, эти состояния работают хорошо, но не то, что мне нужно.
fun onMapClickListener(zonesViewModel: ZonesViewModel){
if(zonesViewModel.merchantInfoBottomLayout!!.state != BottomSheetBehavior.STATE_HIDDEN || zonesViewModel.merchantInfoBottomLayout!!.state != BottomSheetBehavior.STATE_SETTLING){
zonesViewModel.merchantInfoBottomLayout!!.isHideable = true
zonesViewModel.merchantInfoBottomLayout!!.state = BottomSheetBehavior.STATE_SETTLING
}
}
}
Журналы сбоев:
E / AndroidRuntime:ИСКЛЮЧИТЕЛЬНОЕ ИСКЛЮЧЕНИЕ: main java.lang.IllegalArgumentException: Недопустимый аргумент состояния: 2 в android.support.design.widget.BottomSheetBehavior.startSettlingAnimation (BottomSheetBehavior.java:755) в android.support.designjehabSe: 650) в . . . . . . *. MerchantsZoneLocationHandler.onMapClickListener (MerchantsZoneLocationHandler.kt: 171) в . . . . . . *. ZonesFragment $ setupMerchantsComponents $ 2.onMapClick (ZonesFragment.kt: 119) в com.mapbox.mapboxsdk.maps.MapGestureDetector.notifyOnMapClickListeners (MapGestureDete)com.mapbox.mapboxsdk.maps.MapGestureDetector $ StandardGestureListener.onSingleTapConfirmed (MapGestureDetector.java:327) в com.mapbox.android.gestures.StandardGestureDetector $ 1.onSingleTapConfirmed (StandardGestureDetector.java:81) в android.view.GestureDetector $ GestureHandler.handleMessage (GestureDetector.java:300) в android.os.Handler.dispatchMessage (Handler.java:102) в android.os.Looper.jop (: 165) в android.app.ActivityThread.main (ActivityThread.java:6375) в java.lang.reflect.Method.invoke (собственный метод) в com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java): 912) на com.android.internal.os.ZygoteInit.main (ZygoteInit.java:802)