diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/IPCReportWindow.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/IPCReportWindow.kt index efc5ef32be..aa4f8277a3 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/IPCReportWindow.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/IPCReportWindow.kt @@ -55,7 +55,7 @@ class IPCReportWindow constructor(activity: Activity) : View.OnTouchListener{ it.alpha = 0.9f } ipcReportAdapter = IPCReportAdapter() - rvIPCReport.layoutManager = LinearLayoutManager(mActivity, + rvIPCReport.layoutManager = WrapContentLinearLayoutManager(mActivity, LinearLayoutManager.VERTICAL,false) rvIPCReport.adapter = ipcReportAdapter diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/ReportListFloatWindow.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/ReportListFloatWindow.kt index f14472f33c..b758d7ffd1 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/ReportListFloatWindow.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/ReportListFloatWindow.kt @@ -50,7 +50,7 @@ class ReportListFloatWindow constructor(activity: Activity) : View.OnTouchListen it.alpha = 0.9f } reportListAdapter= ReportListAdapter(mActivity) - rvReportList.layoutManager = LinearLayoutManager(mActivity, + rvReportList.layoutManager = WrapContentLinearLayoutManager(mActivity, LinearLayoutManager.VERTICAL,false) rvReportList.adapter = reportListAdapter } diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/WrapContentLinearLayoutManager.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/WrapContentLinearLayoutManager.kt new file mode 100644 index 0000000000..75a93e3901 --- /dev/null +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/WrapContentLinearLayoutManager.kt @@ -0,0 +1,36 @@ +package com.mogo.eagle.core.function.hmi.ui.setting + +import android.content.Context +import android.util.AttributeSet +import androidx.recyclerview.widget.LinearLayoutManager +import androidx.recyclerview.widget.RecyclerView + +/** + * @author XuXinChao + * @description fix java.lang.IndexOutOfBoundsException:检测到不一致。视图持有者适配器positionViewHolder无效 + * @since: 2022/6/7 + */ +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() + } + } +} \ No newline at end of file