[fea]
[catche 住onLayoutChildren]
This commit is contained in:
yangyakun
2024-10-12 18:20:24 +08:00
parent 629fffd265
commit 2f78ffc2e5
5 changed files with 44 additions and 19 deletions

View File

@@ -0,0 +1,32 @@
package com.mogo.och.common.module.wigets
import android.content.Context
import android.util.AttributeSet
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView
class WrapContentLinearLayoutManager : LinearLayoutManager {
constructor(context: Context?) : super(context)
constructor(context: Context?, orientation: Int, reverseLayout: Boolean) : super(
context,
orientation,
reverseLayout
)
constructor(
context: Context?,
attrs: AttributeSet?,
defStyleAttr: Int,
defStyleRes: Int
) : super(context, attrs, defStyleAttr, defStyleRes)
override fun onLayoutChildren(recycler: RecyclerView.Recycler, state: RecyclerView.State) {
try {
super.onLayoutChildren(recycler, state)
} catch (e: IndexOutOfBoundsException) {
e.printStackTrace()
}
}
}

View File

@@ -16,6 +16,7 @@ import com.mogo.eagle.core.utilcode.util.UiThreadHandler
import com.mogo.och.common.module.manager.loop.BizLoopManager
import com.mogo.och.common.module.utils.ResourcesUtils
import com.mogo.och.common.module.wigets.WindowRelativeLayout
import com.mogo.och.common.module.wigets.WrapContentLinearLayoutManager
import com.mogo.och.shuttle.weaknet.R
import com.mogo.och.weaknet.model.LineModel
import com.mogo.och.weaknet.repository.db.bean.LineDataBean
@@ -52,7 +53,7 @@ class SwitchLineView: WindowRelativeLayout, SwtichLineModel.SwtichLineViewCallba
private var animator:ObjectAnimator?=null
private lateinit var linearLayoutManager:LinearLayoutManager
private lateinit var linearLayoutManager: WrapContentLinearLayoutManager
private var animatorStart = System.currentTimeMillis()
@@ -62,7 +63,7 @@ class SwitchLineView: WindowRelativeLayout, SwtichLineModel.SwtichLineViewCallba
}
private fun initView(){
linearLayoutManager = LinearLayoutManager(context)
linearLayoutManager = WrapContentLinearLayoutManager(context)
switch_line_rv.setLayoutManager(linearLayoutManager)
mAdapter = SwitchLineAdapter(context, mutableListOf())
switch_line_rv.addItemDecoration(

View File

@@ -9,6 +9,7 @@ import com.mogo.eagle.core.utilcode.kotlin.onClick
import com.mogo.och.common.module.utils.DateTimeUtil
import com.mogo.och.common.module.utils.ResourcesUtils
import com.mogo.och.common.module.wigets.WindowRelativeLayout
import com.mogo.och.common.module.wigets.WrapContentLinearLayoutManager
import com.mogo.och.shuttle.weaknet.R
import com.mogo.och.weaknet.bean.WaitUploadLine
import kotlinx.android.synthetic.main.shuttle_wadk_task_running.view.aciv_show_data
@@ -42,7 +43,7 @@ class RunningTaskManagerView: WindowRelativeLayout, RunningTastViewModel.Running
private var viewModel:RunningTastViewModel?=null
private lateinit var mAdapter: RunningTaskAdapter
private lateinit var linearLayoutManager:LinearLayoutManager
private lateinit var linearLayoutManager: WrapContentLinearLayoutManager
init {
LayoutInflater.from(context).inflate(R.layout.shuttle_wadk_task_running, this, true)
@@ -56,7 +57,7 @@ class RunningTaskManagerView: WindowRelativeLayout, RunningTastViewModel.Running
}
linearLayoutManager = LinearLayoutManager(context)
linearLayoutManager = WrapContentLinearLayoutManager(context)
rvDataLiet.setLayoutManager(linearLayoutManager)
mAdapter = RunningTaskAdapter(context, mutableListOf())
rvDataLiet.addItemDecoration(

View File

@@ -14,6 +14,7 @@ import com.mogo.och.common.module.manager.autopilot.line.LineManager
import com.mogo.och.common.module.utils.ResourcesUtils
import com.mogo.och.common.module.wigets.CommonDialogStatus
import com.mogo.och.common.module.wigets.CommonSlideView
import com.mogo.och.common.module.wigets.WrapContentLinearLayoutManager
import com.mogo.och.shuttle.weaknet.R
import com.mogo.och.weaknet.model.LineModel
import com.mogo.och.weaknet.ui.bizswitch.SwtichBizeModel
@@ -49,7 +50,7 @@ class TaskRunningView: ConstraintLayout, TaskRunningModel.SwtichLineViewCallback
private lateinit var mAdapter: TaskRunningAdapter
private lateinit var linearLayoutManager:LinearLayoutManager
private lateinit var linearLayoutManager: WrapContentLinearLayoutManager
init {
LayoutInflater.from(context).inflate(R.layout.shuttle_weak_task_running, this, true)
@@ -57,7 +58,7 @@ class TaskRunningView: ConstraintLayout, TaskRunningModel.SwtichLineViewCallback
}
private fun initView(){
linearLayoutManager = LinearLayoutManager(context)
linearLayoutManager = WrapContentLinearLayoutManager(context)
rl_running_task_station_list.setLayoutManager(linearLayoutManager)
mAdapter = TaskRunningAdapter(context, mutableListOf())
rl_running_task_station_list.setAdapter(mAdapter)

View File

@@ -5,31 +5,21 @@ import android.util.AttributeSet
import android.view.LayoutInflater
import android.view.View
import androidx.constraintlayout.widget.ConstraintLayout
import androidx.lifecycle.LifecycleOwner
import androidx.lifecycle.ViewModelProvider
import androidx.lifecycle.ViewModelStoreOwner
import androidx.lifecycle.findViewTreeViewModelStoreOwner
import androidx.lifecycle.lifecycleScope
import androidx.recyclerview.widget.LinearLayoutManager
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
import com.mogo.eagle.core.utilcode.mogo.view.SpacesItemDecoration
import com.mogo.eagle.core.utilcode.util.ToastUtils
import com.mogo.och.common.module.utils.FlowBus
import com.mogo.och.common.module.wigets.WrapContentLinearLayoutManager
import com.mogo.och.unmanned.taxi.R
import com.mogo.och.unmanned.taxi.TaxiUnmannedDriverProvider
import com.mogo.och.unmanned.taxi.bean.GrayLineBean
import com.mogo.och.unmanned.taxi.bean.StartGrayAndQueryContrailRsp
import com.mogo.och.unmanned.taxi.constant.TaxiDriverEventConst
import com.mogo.och.unmanned.taxi.ui.debug.DebugView
import com.mogo.och.unmanned.taxi.ui.routing.RoutingSwitchModel
import com.mogo.och.unmanned.taxi.ui.routing.RoutingUIState
import com.mogo.och.unmanned.taxi.ui.routing.TaxiRoutingChooseLineItemOpenAnimator
import com.mogo.och.unmanned.taxi.ui.routing.TaxiRoutingUiIntent
import com.mogo.och.unmanned.taxi.ui.routing.routingselect.RoutingSelectModel.SwtichRoutingViewCallback
import kotlinx.android.synthetic.main.unmanned_routing_select.view.include_empty
import kotlinx.android.synthetic.main.unmanned_routing_select.view.include_error
import kotlinx.android.synthetic.main.unmanned_routing_select.view.switch_routing_rv
import kotlinx.coroutines.flow.map
import me.jessyan.autosize.utils.AutoSizeUtils
class RoutingSelectView: ConstraintLayout, SwtichRoutingViewCallback {
@@ -52,7 +42,7 @@ class RoutingSelectView: ConstraintLayout, SwtichRoutingViewCallback {
private var swtichViewModel: RoutingSwitchModel?=null
private lateinit var mChooseLineListAdapter: RoutingItemAdapter
private lateinit var mLinearLayoutManager: LinearLayoutManager
private lateinit var mLinearLayoutManager: WrapContentLinearLayoutManager
private val mRoutingLineList: MutableList<GrayLineBean> = ArrayList()
private var mCurrentChosenPosition: Int = -1
@@ -66,7 +56,7 @@ class RoutingSelectView: ConstraintLayout, SwtichRoutingViewCallback {
private fun initView(){
mLinearLayoutManager = LinearLayoutManager(context)
mLinearLayoutManager = WrapContentLinearLayoutManager(context)
switch_routing_rv.layoutManager = mLinearLayoutManager
switch_routing_rv.itemAnimator = TaxiRoutingChooseLineItemOpenAnimator()
mChooseLineListAdapter = RoutingItemAdapter(context, mRoutingLineList)