From 9f93f234d2eb082b739b7cfa35dacf1837635cd4 Mon Sep 17 00:00:00 2001 From: yangyakun Date: Mon, 20 Mar 2023 21:02:39 +0800 Subject: [PATCH] =?UTF-8?q?[m1]=20[recycleview=20=E6=BB=9A=E5=8A=A8?= =?UTF-8?q?=E9=97=AE=E9=A2=98]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../och/bus/passenger/ui/M1SoftFragment.kt | 38 +++++++++++++------ 1 file changed, 26 insertions(+), 12 deletions(-) diff --git a/OCH/mogo-och-charter-passenger/src/m1/java/com/mogo/och/bus/passenger/ui/M1SoftFragment.kt b/OCH/mogo-och-charter-passenger/src/m1/java/com/mogo/och/bus/passenger/ui/M1SoftFragment.kt index 94b964ac25..e4aff84aaf 100644 --- a/OCH/mogo-och-charter-passenger/src/m1/java/com/mogo/och/bus/passenger/ui/M1SoftFragment.kt +++ b/OCH/mogo-och-charter-passenger/src/m1/java/com/mogo/och/bus/passenger/ui/M1SoftFragment.kt @@ -55,6 +55,7 @@ class M1SoftFragment : private var currentTemperature: Temperature? = null + private var subscribeAir: Disposable? = null private var subscribeLightTop1: Disposable? = null private var subscribeLightTop2: Disposable? = null private var subscribeAtmosphere: Disposable? = null @@ -239,26 +240,26 @@ class M1SoftFragment : rv_aircondition_temperature.layoutManager = pickerLayoutManager rv_aircondition_temperature.adapter = adapter HorizontalDecoration.distance = SharedPrefsMgr.getInstance(requireContext()).getInt(HorizontalDecoration.distancekey,0) - rv_aircondition_temperature.addItemDecoration(HorizontalDecoration(15,data.size-1)) + rv_aircondition_temperature.addItemDecoration(HorizontalDecoration(20,data.size-1)) pickerLayoutManager.setOnScrollStopListener { view -> if (view is TextView) { // 未拖到中点、自动滚动到中点会短时间触发两次 - if (ClickUtils.isClickTooFrequent(rv_aircondition_temperature)) { - return@setOnScrollStopListener - } val tag = view.tag if (tag is Temperature) { - adapter.setCheckIndex(tag.index) - currentTemperature = tag - if(rv_aircondition_temperature.tag== touchTag){ - rv_aircondition_temperature.tag = null - return@setOnScrollStopListener + mPresenter?.disposeSubscribe(subscribeAir) + if(tag.index==0||tag.index==adapter.data.size-1){ + subscribeAir = Observable.timer(200, TimeUnit.MILLISECONDS) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe { + setCheckAir(adapter,tag) + } }else { - SoundPoolHelper.getSoundPoolHelper() - .playSoundWithRedId(context, R.raw.bus_di) + if (ClickUtils.isClickTooFrequent(rv_aircondition_temperature)) { + return@setOnScrollStopListener + } + setCheckAir(adapter,tag) } - openAircondition() } } @@ -269,6 +270,19 @@ class M1SoftFragment : } } + private fun setCheckAir(adapter:TemperatureAdapter,tag:Temperature){ + adapter.setCheckIndex(tag.index) + currentTemperature = tag + if (rv_aircondition_temperature.tag == touchTag) { + rv_aircondition_temperature.tag = null + return + } else { + SoundPoolHelper.getSoundPoolHelper() + .playSoundWithRedId(context, R.raw.bus_di) + } + openAircondition() + } + private fun getData(): MutableList { val mutableListOf = mutableListOf() mutableListOf.add(Temperature(0, 16, "16°"))