[6.7.2]
[fea] [滚动触发]
This commit is contained in:
@@ -3,6 +3,7 @@ package com.mogo.och.common.module.wigets
|
||||
import android.content.Context
|
||||
import android.util.AttributeSet
|
||||
import androidx.recyclerview.widget.LinearLayoutManager
|
||||
import androidx.recyclerview.widget.LinearSmoothScroller
|
||||
import androidx.recyclerview.widget.RecyclerView
|
||||
|
||||
|
||||
@@ -29,4 +30,27 @@ class WrapContentLinearLayoutManager : LinearLayoutManager {
|
||||
e.printStackTrace()
|
||||
}
|
||||
}
|
||||
|
||||
override fun smoothScrollToPosition(
|
||||
recyclerView: RecyclerView,
|
||||
state: RecyclerView.State?,
|
||||
position: Int
|
||||
) {
|
||||
val smoothScroller: RecyclerView.SmoothScroller = CenterSmoothScroller(recyclerView.context)
|
||||
smoothScroller.targetPosition = position
|
||||
startSmoothScroll(smoothScroller)
|
||||
}
|
||||
|
||||
class CenterSmoothScroller internal constructor(context: Context?) :
|
||||
LinearSmoothScroller(context) {
|
||||
override fun calculateDtToFit(
|
||||
viewStart: Int,
|
||||
viewEnd: Int,
|
||||
boxStart: Int,
|
||||
boxEnd: Int,
|
||||
snapPreference: Int
|
||||
): Int {
|
||||
return (boxStart + (boxEnd - boxStart) / 2) - (viewStart + (viewEnd - viewStart) / 2)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -95,7 +95,7 @@ object RepositoryManager {
|
||||
}
|
||||
|
||||
fun supportDb():Boolean{
|
||||
if(ProjectUtils.isSaas()&&AppIdentityModeUtils.isShuttle(FunctionBuildConfig.appIdentityMode)) {
|
||||
if(ProjectUtils.isSaas()||(ProjectUtils.isDali()&&AppIdentityModeUtils.isShuttle(FunctionBuildConfig.appIdentityMode))) {
|
||||
return true
|
||||
}
|
||||
return false
|
||||
|
||||
@@ -16,6 +16,7 @@ import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.d
|
||||
import com.mogo.och.common.module.wigets.map.drawline.LineView
|
||||
import com.mogo.och.shuttle.weaknet.R
|
||||
import com.mogo.och.weaknet.repository.RepositoryManager
|
||||
import com.mogo.och.weaknet.ui.taskrunned.RunningTaskManager
|
||||
import kotlinx.android.synthetic.main.shuttle_weak_base_fragment.mapContainerLayout
|
||||
import org.greenrobot.eventbus.EventBus
|
||||
@@ -48,7 +49,7 @@ class ShuttleFragment : MvpFragment<ShuttleFragment?, BusPresenter?>() {
|
||||
override fun initViews() {
|
||||
|
||||
context?.let {
|
||||
if(ProjectUtils.isSaas()||(ProjectUtils.isDali()&&AppIdentityModeUtils.isShuttle(FunctionBuildConfig.appIdentityMode))){
|
||||
if(RepositoryManager.supportDb()){
|
||||
CallerEagleBaseFunctionCall4OchManager.addSingleToolKitDefaultItem(runningTaskGateWay,"本地缓存任务", R.drawable.bus_running_task_history,4)
|
||||
}
|
||||
CallerEagleBaseFunctionCall4OchManager.addToolKitDefaultItemClickListener(runningTaskGateWay,object :
|
||||
|
||||
@@ -33,15 +33,25 @@ class TaskRunningModel : ViewModel(), IBusLinesCallback {
|
||||
interface SwtichLineViewCallback{
|
||||
fun showRunningTaskInfo()
|
||||
fun hideLoadingAndshowRunningTaskInfo()
|
||||
fun smoothScrollToPosition(position:Int)
|
||||
}
|
||||
|
||||
override fun onLeaveStaionSuccess() {
|
||||
BizLoopManager.runInMainThread{
|
||||
viewCallback?.hideLoadingAndshowRunningTaskInfo()
|
||||
smoothScrollToPosition()
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
fun smoothScrollToPosition(){
|
||||
BizLoopManager.runInMainThread(object :Runnable{
|
||||
override fun run() {
|
||||
viewCallback?.smoothScrollToPosition(LineModel.startStationIndex)
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
override fun onLeaveStaionFail() {
|
||||
BizLoopManager.runInMainThread{
|
||||
viewCallback?.showRunningTaskInfo()
|
||||
@@ -55,6 +65,7 @@ class TaskRunningModel : ViewModel(), IBusLinesCallback {
|
||||
|
||||
override fun onArriveStationSuccess() {
|
||||
BizLoopManager.runInMainThread{
|
||||
smoothScrollToPosition()
|
||||
viewCallback?.showRunningTaskInfo()
|
||||
}
|
||||
}
|
||||
|
||||
@@ -10,6 +10,7 @@ import com.mogo.commons.AbsMogoApplication
|
||||
import com.mogo.eagle.core.utilcode.kotlin.onClick
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
|
||||
import com.mogo.och.common.module.manager.autopilot.line.LineManager
|
||||
import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager
|
||||
import com.mogo.och.common.module.utils.ResourcesUtils
|
||||
import com.mogo.och.common.module.wigets.dialog.CommonDialogStatus
|
||||
import com.mogo.och.common.module.wigets.CommonSlideView
|
||||
@@ -131,6 +132,15 @@ class TaskRunningView: ConstraintLayout, TaskRunningModel.SwtichLineViewCallback
|
||||
showRunningTaskInfo()
|
||||
}
|
||||
|
||||
override fun smoothScrollToPosition(position: Int) {
|
||||
try {
|
||||
rl_running_task_station_list.smoothScrollToPosition(position)
|
||||
}catch (e:Exception){
|
||||
OchChainLogManager.writeChainLog("错误","e:${e.message}")
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
fun showLeaveStationView(){
|
||||
aciv_task_leave_station_slide_bg.visibility = VISIBLE
|
||||
actv_arriver_station.visibility = GONE
|
||||
|
||||
Reference in New Issue
Block a user