[fea]
[线路选择]
This commit is contained in:
yangyakun
2024-07-16 12:42:12 +08:00
parent 5020ebbbf3
commit d8da838ae2
10 changed files with 66 additions and 379 deletions

View File

@@ -1,29 +1,25 @@
package com.mogo.och.offline.bean
import com.mogo.eagle.core.data.BaseData
import com.mogo.och.data.bean.BusStationBean
import java.util.*
/**
*
*/
data class BindLineListResponse(val data: List<LineInfo>?) : BaseData(){
data class BindLineListResponse(val data: List<Result>?) : BaseData(){
data class LineInfo(
val lineId:Long?,
val lineName:String?,
val siteList: List<SiteInfo>?,//站点名称
data class Result(
val line:LineInfo?,
val siteList: List<BusStationBean>?,//站点名称
val contrail: Contrail?,//站点名称
)
data class SiteInfo(
val siteId:Long?,
val name:String?,
val seq:Double?,
val gcjLon:Double?,
val gcjLat:Double?,
val lon:Double?,
val lat:Double?,
data class LineInfo(
val lineId:Long?,
var lineName:String?,
)
data class Contrail(
val csvFileUrl:String?,
val csvFileMd5:String?,

View File

@@ -1,14 +1,12 @@
package com.mogo.och.offline.callback;
import com.mogo.och.offline.bean.BusQueryLineTaskResponse;
import com.mogo.och.offline.bean.BusQueryLinesResponse;
import com.mogo.och.offline.bean.BindLineListResponse;
/**
* @author: wangmingjun
* @date: 2022/2/9
*/
public interface IBusLinesCallback {
void onBusLinesChange(BusQueryLinesResponse lines);
void onChangeLineIdSuccess();
void onBusLineTasks(BusQueryLineTaskResponse o, int position,boolean autoRefresh);
void onBusLinesChange(BindLineListResponse lines);
void onChangeLineIdSuccess(BindLineListResponse.Result checkLineInfo);
}

View File

@@ -7,6 +7,7 @@ import com.mogo.commons.storage.SharedPrefsMgr;
import com.mogo.eagle.core.utilcode.util.NetworkUtils;
import com.mogo.eagle.core.utilcode.util.ToastUtils;
import com.mogo.och.offline.R;
import com.mogo.och.offline.bean.BindLineListResponse;
import com.mogo.och.offline.bean.BusRoutesResponse;
import com.mogo.och.offline.callback.IBusLinesCallback;
import com.mogo.och.offline.net.OrderServiceManager;
@@ -43,9 +44,9 @@ public class BusLineModel {
mBusLinesCallback = callback;
}
public void queryBusLines(){
OrderServiceManager.queryBusLines(mContext, new OchCommonServiceCallback<BusQueryLinesResponse>() {
OrderServiceManager.queryBindLineListBySn(new OchCommonServiceCallback<BindLineListResponse>() {
@Override
public void onSuccess(BusQueryLinesResponse data) {
public void onSuccess(BindLineListResponse data) {
if (null == data && mBusLinesCallback != null) {
mBusLinesCallback.onBusLinesChange(null);
return;
@@ -76,73 +77,11 @@ public class BusLineModel {
});
}
/**
* 通过线路id 查询线路排班表
* @param lineId 线路ID
* @param position 位置
*/
public void queryBusLineTasksById(int lineId, int position,boolean autoRefresh){
OrderServiceManager.queryBusTaskByLineId(mContext, String.valueOf(lineId),new OchCommonServiceCallback<BusQueryLineTaskResponse>() {
@Override
public void onSuccess(BusQueryLineTaskResponse data) {
if (null == data && mBusLinesCallback != null) {
mBusLinesCallback.onBusLineTasks(null,position,autoRefresh);
return;
}
if (mBusLinesCallback != null){
mBusLinesCallback.onBusLineTasks(data,position,autoRefresh);
}
}
@Override
public void onError() {
if (!NetworkUtils.isConnected(mContext)) {
ToastUtils.showShort(mContext.getString(R.string.network_error_tip));
} else {
ToastUtils.showShort(mContext.getString(R.string.request_error_tip));
}
}
@Override
public void onFail(int code, String failMsg) {
if (!NetworkUtils.isConnected(mContext)) {
ToastUtils.showShort("网络异常,请稍后重试");
}else {
ToastUtils.showShort("查询所有绑定路线失败:"+failMsg);
}
}
});
}
public void commitSwitchLineId(int taskId,int lineId){
OrderServiceManager.switchLine(mContext,taskId, new OchCommonServiceCallback<BusRoutesResponse>() {
@Override
public void onSuccess(BusRoutesResponse o) {
SharedPrefsMgr.getInstance().putInt(BusSwitchLineActivity.LASTCOMMITLINEID,lineId);
if (mBusLinesCallback != null){
mBusLinesCallback.onChangeLineIdSuccess();
}
}
@Override
public void onError() {
if (!NetworkUtils.isConnected(mContext)) {
ToastUtils.showShort(mContext.getString(R.string.network_error_tip));
} else {
ToastUtils.showShort(mContext.getString(R.string.request_error_tip));
}
}
@Override
public void onFail(int code, String failMsg) {
if (!NetworkUtils.isConnected(mContext)) {
ToastUtils.showShort("网络异常,请稍后重试");
}else {
ToastUtils.showShort("选择任务失败:"+failMsg);
}
}
});
public void commitSwitchLineId(BindLineListResponse.Result checkLineInfo){
if (mBusLinesCallback != null){
mBusLinesCallback.onChangeLineIdSuccess(checkLineInfo);
}
}
}

View File

@@ -28,6 +28,7 @@ import com.mogo.och.common.module.manager.socket.lan.LanSocketManager;
import com.mogo.och.common.module.manager.socket.lan.bean.BusinessType;
import com.mogo.och.common.module.voice.VoiceNotice;
import com.mogo.och.offline.R;
import com.mogo.och.offline.bean.BindLineListResponse;
import com.mogo.och.offline.bean.BusRoutesResponse;
import com.mogo.och.offline.callback.IBusADASStatusCallback;
import com.mogo.och.offline.net.OrderServiceManager;
@@ -35,7 +36,6 @@ import com.mogo.och.offline.util.ShuttleVoiceManager;
import com.mogo.och.common.module.manager.socket.lan.bean.AppConnectMsg;
import com.mogo.och.common.module.manager.socket.lan.bean.BaseDPMsg;
import com.mogo.och.common.module.manager.socket.lan.bean.DPMsgType;
import com.mogo.och.common.module.manager.socket.lan.bean.LoginCacheStatus;
import com.mogo.och.common.module.manager.socket.lan.bean.TaskDetailsMsg;
import com.mogo.och.common.module.biz.login.LoginStatusManager;
import com.mogo.och.common.module.manager.autopilot.autopilot.ArrivedStation;

View File

@@ -5,26 +5,18 @@ import androidx.lifecycle.LifecycleOwner;
import com.mogo.commons.mvp.Presenter;
import com.mogo.eagle.core.utilcode.util.UiThreadHandler;
import com.mogo.och.offline.bean.BindLineListResponse;
import com.mogo.och.offline.ui.BusSwitchLineView;
import com.mogo.och.offline.bean.BusQueryLineTaskResponse;
import com.mogo.och.offline.bean.BusQueryLinesResponse;
import com.mogo.och.offline.callback.IBusLinesCallback;
import com.mogo.och.offline.model.BusLineModel;
import com.mogo.och.offline.model.OrderModel;
import java.util.concurrent.TimeUnit;
import io.reactivex.Observable;
import io.reactivex.disposables.Disposable;
/**
* @author: wangmingjun
* @date: 2022/2/9
*/
public class BusLinePresenter extends Presenter<BusSwitchLineView> implements IBusLinesCallback {
private Disposable subscribe;
public BusLinePresenter(BusSwitchLineView view) {
super(view);
BusLineModel.getInstance().init();
@@ -42,7 +34,7 @@ public class BusLinePresenter extends Presenter<BusSwitchLineView> implements IB
}
@Override
public void onBusLinesChange(BusQueryLinesResponse lines) {
public void onBusLinesChange(BindLineListResponse lines) {
UiThreadHandler.post(new Runnable() {
@Override
public void run() {
@@ -54,7 +46,7 @@ public class BusLinePresenter extends Presenter<BusSwitchLineView> implements IB
}
@Override
public void onChangeLineIdSuccess() {
public void onChangeLineIdSuccess(BindLineListResponse.Result checkLineInfo) {
OrderModel.getInstance().clearBusStationDatas();
UiThreadHandler.post(new Runnable() {
@Override
@@ -70,21 +62,8 @@ public class BusLinePresenter extends Presenter<BusSwitchLineView> implements IB
BusLineModel.getInstance().queryBusLines();
}
public void queryBusLineTasks(int lineId, int position,boolean close){
if(subscribe!=null&&!subscribe.isDisposed()){
subscribe.dispose();
}
if(close){
return;
}
BusLineModel.getInstance().queryBusLineTasksById(lineId,position,false);
subscribe = Observable.interval(3, TimeUnit.MINUTES).subscribe(aLong -> {
BusLineModel.getInstance().queryBusLineTasksById(lineId,position,true);
});
}
public void commitSwitchLineId(int taskId,int lineId){
BusLineModel.getInstance().commitSwitchLineId(taskId,lineId);
public void commitSwitchLineId(BindLineListResponse.Result checkLineInfo){
BusLineModel.getInstance().commitSwitchLineId(checkLineInfo);
}
public void removeListener(){
@@ -98,16 +77,7 @@ public class BusLinePresenter extends Presenter<BusSwitchLineView> implements IB
@Override
public void onDestroy(@NonNull LifecycleOwner owner) {
super.onDestroy(owner);
if(subscribe!=null&&!subscribe.isDisposed()){
subscribe.dispose();
}
}
@Override
public void onBusLineTasks(BusQueryLineTaskResponse o, int position,boolean autoRefresh) {
if(mView!=null) {
mView.onBusLineTasks(o,position,autoRefresh);
}
}
}

View File

@@ -15,12 +15,11 @@ import com.mogo.commons.mvp.MvpActivity
import com.mogo.commons.storage.SharedPrefsMgr
import com.mogo.och.offline.presenter.BusLinePresenter
import com.mogo.och.offline.ui.adapter.SwitchLineAdapter
import com.mogo.och.offline.bean.BusQueryLinesResponse
import com.mogo.och.offline.ui.adapter.OpenItemAnimator
import com.mogo.eagle.core.utilcode.mogo.view.SpacesItemDecoration
import com.mogo.eagle.core.utilcode.util.ToastUtils
import com.mogo.och.offline.R
import com.mogo.och.offline.bean.BusQueryLineTaskResponse
import com.mogo.och.offline.bean.BindLineListResponse
import java.util.ArrayList
/**
@@ -40,7 +39,8 @@ class BusSwitchLineActivity : MvpActivity<BusSwitchLineView?, BusLinePresenter?>
private lateinit var mLineCommitBtn: TextView
private lateinit var mAdapter: SwitchLineAdapter
private lateinit var linearLayoutManager:LinearLayoutManager
private val mData: MutableList<BusQueryLinesResponse.Result> = ArrayList()
private val mData: MutableList<BindLineListResponse.Result> = ArrayList()
private var checkLineInfo:BindLineListResponse.Result? = null
override fun getLayoutId(): Int {
return R.layout.shuttle_switch_line
}
@@ -81,8 +81,9 @@ class BusSwitchLineActivity : MvpActivity<BusSwitchLineView?, BusLinePresenter?>
mLinesListView.setAdapter(mAdapter)
//设置item 点击事件
mAdapter.setOnLineItemClickListener(object : SwitchLineAdapter.LineItemClickListener{
override fun onItemClick(position: Int, close: Boolean) {
mPresenter?.queryBusLineTasks(mData[position].lineId, position, close)
override fun onItemClick(lineInfo: BindLineListResponse.Result) {
// 选中的线路
checkLineInfo = lineInfo
}
})
}
@@ -113,7 +114,7 @@ class BusSwitchLineActivity : MvpActivity<BusSwitchLineView?, BusLinePresenter?>
* 查询返回绑定路线集合
* @param data
*/
override fun onBusLinesChange(data: BusQueryLinesResponse?) {
override fun onBusLinesChange(data: BindLineListResponse?) {
if (null == data) {
showNoData(true)
return
@@ -124,15 +125,6 @@ class BusSwitchLineActivity : MvpActivity<BusSwitchLineView?, BusLinePresenter?>
mData.clear()
mData.addAll(data.data)
mAdapter.notifyDataSetChanged()
if(lastCommitLineid>0){
mData.forEachIndexed { index, line ->
if(line.lineId==lastCommitLineid){
line.open = true
mPresenter?.queryBusLineTasks(line.lineId,index,false)
return
}
}
}
} else {
showNoData(true)
}
@@ -146,43 +138,6 @@ class BusSwitchLineActivity : MvpActivity<BusSwitchLineView?, BusLinePresenter?>
finish()
}
override fun onBusLineTasks(lineTaskInfo: BusQueryLineTaskResponse?, position: Int, autoRefresh:Boolean) {
val result = mData[position]
if (result.taskList == null) {
result.taskList = ArrayList()
}
if (lineTaskInfo == null) {
result.haveTask = true
// 打开操作
mAdapter.notifyItemChanged(position)
} else {
if (lineTaskInfo.data == null || lineTaskInfo.data.isEmpty()) {
result.haveTask = true
lineTaskInfo.data = ArrayList()
}
if (lineTaskInfo.data.size != result.taskList.size) { // 不相等有变动 重新赋值
result.taskList.clear()
result.taskList.addAll(lineTaskInfo.data)
if(autoRefresh) {
mAdapter.checkTaskId = -1
mAdapter.checkLineId = -1
lineTaskInfo.data.forEach {
if (it.id == mAdapter.checkTaskId) {
mAdapter.checkTaskId = it.id
mAdapter.checkLineId = result.lineId
}
}
}
// 打开操作
mAdapter.notifyItemChanged(position)
linearLayoutManager.stackFromEnd = (position==mData.size-1||position==mData.size-2)&&mData.size>6
mLinesListView.smoothScrollToPosition(position)
}else if(lineTaskInfo.data.isEmpty()){
mAdapter.notifyItemChanged(position)
}
}
}
/**
* 有无数据UI显示
* @param b
@@ -207,10 +162,10 @@ class BusSwitchLineActivity : MvpActivity<BusSwitchLineView?, BusLinePresenter?>
}
//切换路线提交
if (v.id == R.id.switch_line_btn_commit) {
if(mAdapter.checkLineId!=-1&&mAdapter.checkTaskId!=-1){
mPresenter?.commitSwitchLineId(mAdapter.checkTaskId,mAdapter.checkLineId)
}else{
if (checkLineInfo==null) {
ToastUtils.showLong("请选择任务")
}else{
mPresenter?.commitSwitchLineId(checkLineInfo)
}
}
}

View File

@@ -1,8 +1,7 @@
package com.mogo.och.offline.ui;
import com.mogo.commons.mvp.IView;
import com.mogo.och.offline.bean.BusQueryLineTaskResponse;
import com.mogo.och.offline.bean.BusQueryLinesResponse;
import com.mogo.och.offline.bean.BindLineListResponse;
/**
* @author: wangmingjun
@@ -10,9 +9,8 @@ import com.mogo.och.offline.bean.BusQueryLinesResponse;
*/
public interface BusSwitchLineView extends IView {
void onBusLinesChange(BusQueryLinesResponse data);
void onBusLinesChange(BindLineListResponse data);
void onChangeLineIdSuccess();
void onBusLineTasks(BusQueryLineTaskResponse o, int position,boolean autoRefresh);
}

View File

@@ -10,6 +10,7 @@ import androidx.core.content.ContextCompat
import androidx.recyclerview.widget.GridLayoutManager
import androidx.recyclerview.widget.RecyclerView
import com.mogo.och.offline.R
import com.mogo.och.offline.bean.BindLineListResponse
import com.mogo.och.offline.bean.BusQueryLinesResponse
import com.mogo.och.offline.ui.adapter.SwitchLineAdapter.SwitchLineViewHolder
import kotlin.text.StringBuilder
@@ -19,7 +20,7 @@ import kotlin.text.StringBuilder
*/
class SwitchLineAdapter(
private val mContext: Context,
private val mData: List<BusQueryLinesResponse.Result>
private val mData: List<BindLineListResponse.Result>
) : RecyclerView.Adapter<SwitchLineViewHolder>() {
companion object{
const val TAG = "SwitchLineAdapter"
@@ -40,112 +41,35 @@ class SwitchLineAdapter(
override fun onBindViewHolder(holder: SwitchLineViewHolder, position: Int) {
val currentPosition = holder.bindingAdapterPosition
val line = mData[currentPosition]
if(line.name!=null&&line.name.length>10){
line.name = line.name.substring(0,10)+""
}
holder.lineName.text = line.name
val sb = StringBuilder()
if (line.endSiteName!=null&&line.endSiteName.length>10) {
sb.append(line.endSiteName.substring(0,5))
sb.append("")
sb.append(line.endSiteName.substring(line.endSiteName.length-5,line.endSiteName.length))
}else{
sb.append(line.endSiteName)
}
val string = mContext.getString(R.string.bus_line_goto_end, sb.toString())
holder.lineEndName.text = string
holder.rvLineTask.layoutManager = GridLayoutManager(mContext, 3)
val switchLineTaskAdapter = SwitchLineTaskAdapter(
mContext,
checkTaskId,
line.taskList,
object : SwitchLineTaskAdapter.TaskItemClickListener {
override fun onItemClick(position: Int,isCheck:Boolean) {
try {
if(isCheck) {
checkLineId = line.lineId
checkTaskId = line.taskList[position].id
}else{
checkLineId=-1
checkTaskId=-1
}
}catch (e:Exception){
e.printStackTrace()
checkLineId=-1
checkTaskId=-1
}
}
})
holder.rvLineTask.adapter = switchLineTaskAdapter
holder.rvLineTask.isFocusableInTouchMode = false
holder.actvShowMore.visibility = View.VISIBLE
if(line.open){
if(line.taskList==null||line.taskList.isEmpty()){
holder.actvShowMore.text = mContext.getString(R.string.bus_switch_line_no_task)
holder.actvShowMore.setTextColor(ContextCompat.getColor(mContext,R.color.bus_color_4dffffff))
holder.vLineTask.visibility = View.GONE
holder.rvLineTask.visibility = View.GONE
holder.selectIv.visibility = View.INVISIBLE
holder.itemView.setBackgroundResource(R.drawable.bus_shape_select_line_item_bg_normal)
}else {
holder.actvShowMore.text = mContext.getString(R.string.bus_switch_line_select_task)
holder.actvShowMore.setTextColor(ContextCompat.getColor(mContext,android.R.color.white))
holder.vLineTask.visibility = View.VISIBLE
holder.rvLineTask.visibility = View.VISIBLE
holder.selectIv.visibility = View.VISIBLE
holder.itemView.setBackgroundResource(R.drawable.bus_shape_select_line_item_bg_selected)
holder.selectIv.apply {
pivotX = 9.5f
pivotY = 17f
rotation = 90f
val lineInfo = mData[currentPosition]
lineInfo.line?.let {line->
line.lineName?.let {
if(it.length>10){
line.lineName = it.substring(0,10)+""
}
}
}else{
if(line.haveTask){
holder.actvShowMore.text = mContext.getString(R.string.bus_switch_line_no_task)
holder.actvShowMore.setTextColor(ContextCompat.getColor(mContext,R.color.bus_color_4dffffff))
holder.vLineTask.visibility = View.GONE
holder.rvLineTask.visibility = View.GONE
holder.selectIv.visibility = View.INVISIBLE
holder.itemView.setBackgroundResource(R.drawable.bus_shape_select_line_item_bg_normal)
}else {
holder.actvShowMore.text = mContext.getString(R.string.bus_switch_line_select_task)
holder.actvShowMore.setTextColor(ContextCompat.getColor(mContext,android.R.color.white))
holder.vLineTask.visibility = View.GONE
holder.rvLineTask.visibility = View.GONE
holder.selectIv.visibility = View.VISIBLE
holder.itemView.setBackgroundResource(R.drawable.bus_shape_select_line_item_bg_normal)
holder.selectIv.apply {
pivotX = 9.5f
pivotY = 17f
rotation = 0f
}
holder.linelineName.text = lineInfo.line?.lineName
lineInfo.siteList?.let {
val last = it.last()
last.name?.let {siteName->
val sb = StringBuilder()
if (siteName.length>10) {
sb.append(siteName.substring(0,5))
sb.append("")
sb.append(siteName.substring(siteName.length-5,siteName.length))
}else{
sb.append(siteName)
}
val string = mContext.getString(R.string.bus_line_goto_end, sb.toString())
holder.lineEndlineName.text = string
}
}
//设置item点击事件
holder.itemView.setOnClickListener {
if(holder.actvShowMore.text==mContext.getString(R.string.bus_switch_line_no_task)){
return@setOnClickListener
}
mData.forEachIndexed { index, result ->
if(result.open){
result.open = false;
notifyItemChanged(index)
if(result.taskList!=null) {
result.taskList.clear()
}
if(index==currentPosition){// 点击当前已经打开的item 去关闭定时网络请求
mItemClickListener?.onItemClick(currentPosition,true)
return@setOnClickListener
}
}
}
mItemClickListener?.onItemClick(currentPosition,false)
line.open = holder.rvLineTask.visibility == View.GONE
mItemClickListener?.onItemClick(lineInfo)
}
}
@@ -159,23 +83,21 @@ class SwitchLineAdapter(
class SwitchLineViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
val selectIv: ImageView
val lineName: AppCompatTextView//线路名称
val lineEndName: AppCompatTextView //终点
val linelineName: AppCompatTextView//线路名称
val lineEndlineName: AppCompatTextView //终点
val actvShowMore: AppCompatTextView //选择时间
val rvLineTask: RecyclerView// 排班时间
val vLineTask: View// 白色分割线
init {
selectIv = itemView.findViewById(R.id.switch_line_item_select_iv)
lineName = itemView.findViewById(R.id.switch_line_name)
lineEndName = itemView.findViewById(R.id.switch_line_end_station)
rvLineTask = itemView.findViewById(R.id.rv_line_task_list)
linelineName = itemView.findViewById(R.id.switch_line_name)
lineEndlineName = itemView.findViewById(R.id.switch_line_end_station)
vLineTask = itemView.findViewById(R.id.v_line_task)
actvShowMore = itemView.findViewById(R.id.actv_show_more)
}
}
interface LineItemClickListener {
fun onItemClick(position: Int,close:Boolean)
fun onItemClick(lineInfo: BindLineListResponse.Result)
}
}

View File

@@ -1,76 +0,0 @@
package com.mogo.och.offline.ui.adapter
import android.content.Context
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.TextView
import androidx.recyclerview.widget.RecyclerView
import com.mogo.eagle.core.utilcode.util.TimeUtils
import com.mogo.och.offline.R
import com.mogo.och.offline.bean.BusQueryLineTaskResponse
import com.mogo.och.offline.ui.adapter.SwitchLineTaskAdapter.SwitchLineTaskViewHolder
/**
* 路线列表adapter
*/
class SwitchLineTaskAdapter(
private val mContext: Context,
private var checkTaskId:Int,
private val mData: List<BusQueryLineTaskResponse.Result>?,
private val mTaskItemClickListener: TaskItemClickListener?
) : RecyclerView.Adapter<SwitchLineTaskViewHolder>() {
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): SwitchLineTaskViewHolder {
val view = LayoutInflater.from(mContext).inflate(
R.layout.shuttle_switch_line_list_task_item, parent, false
)
return SwitchLineTaskViewHolder(view)
}
override fun onBindViewHolder(holder: SwitchLineTaskViewHolder, position: Int) {
val currentPosition = holder.bindingAdapterPosition
val task = mData!![currentPosition]
val taskStartTime = TimeUtils.millis2String(task.taskStartTime, "HH:mm")
holder.lineTask.text = taskStartTime
if(checkTaskId==task.id){
holder.lineTask.setBackgroundResource(R.drawable.bus_shape_select_line_item_time_bg_selected)
}else{
holder.lineTask.setBackgroundResource(R.drawable.bus_shape_select_line_item_time_bg)
}
holder.lineTask.setOnClickListener {
if(checkTaskId==task.id){
checkTaskId = -1
mTaskItemClickListener?.onItemClick(currentPosition,false)
}else {
resetOther()
checkTaskId = task.id
mTaskItemClickListener?.onItemClick(currentPosition,true)
}
notifyItemChanged(currentPosition)
}
}
private fun resetOther() {
mData?.forEachIndexed { index, result ->
if(result.id==checkTaskId){
checkTaskId = -1
notifyItemChanged(index)
}
}
}
override fun getItemCount(): Int {
return mData?.size ?: 0
}
class SwitchLineTaskViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
val lineTask: TextView // 时间
init {
lineTask = itemView.findViewById(R.id.actv_line_task)
}
}
interface TaskItemClickListener {
fun onItemClick(position: Int,isCheck:Boolean)
}
}

View File

@@ -66,23 +66,8 @@
android:layout_marginEnd="@dimen/dp_80"
android:background="#63ffffff"
android:visibility="gone"
app:layout_constraintBottom_toTopOf="@+id/rv_line_task_list"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/switch_line_end_station" />
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rv_line_task_list"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/dp_50"
android:layout_marginTop="@dimen/dp_20"
android:layout_marginEnd="@dimen/dp_50"
android:layout_marginBottom="@dimen/dp_20"
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/v_line_task" />
</androidx.constraintlayout.widget.ConstraintLayout>