app/src/main/java/com/xw/yunwei/model/TaskNormalChargeModel.kt
@@ -1,6 +1,7 @@ package com.xw.yunwei.model import com.google.gson.annotations.SerializedName import com.xw.yunwei.extension.dateChangePattern /** * 常规任务任务充电详情 @@ -175,4 +176,13 @@ */ @SerializedName("vehicleLocation") val vehicleLocation: String? = null ) ){ //获取显示开始充电时间 fun getShowStartTime(): String?{ return startTime?.dateChangePattern("yyyy-MM-dd HH:mm:ss","yyyy/MM/dd HH:mm:ss") } //获取显示结束充电时间 fun getShowEndTime(): String?{ return endTime?.dateChangePattern("yyyy-MM-dd HH:mm:ss","yyyy/MM/dd HH:mm:ss") } } app/src/main/java/com/xw/yunwei/model/TaskNormalCheckModel.kt
@@ -1,6 +1,7 @@ package com.xw.yunwei.model import com.google.gson.annotations.SerializedName import com.xw.yunwei.extension.dateChangePattern /** * 常规任务任务检测详情 @@ -234,4 +235,11 @@ */ @SerializedName("versionVerification") val versionVerification: Int? = null ) ){ //获取显示检测时间 fun getShowCheckTime(): String?{ return checkTime?.dateChangePattern("yyyy-MM-dd HH:mm:ss","yyyy/MM/dd HH:mm:ss") } } app/src/main/java/com/xw/yunwei/model/TaskNormalModel.kt
@@ -168,4 +168,9 @@ } } ?: "" } //获取显示操作时间 fun getShowHandleTime(): String?{ return handleTime?.dateChangePattern("yyyy-MM-dd HH:mm:ss","yyyy/MM/dd HH:mm:ss") } } app/src/main/java/com/xw/yunwei/model/TaskNormalRepairModel.kt
@@ -1,6 +1,7 @@ package com.xw.yunwei.model import com.google.gson.annotations.SerializedName import com.xw.yunwei.extension.dateChangePattern /** * 常规任务任务维修详情 @@ -181,4 +182,13 @@ */ @SerializedName("vehicleLocation") val vehicleLocation: String? = null ) ) { //获取显示送修时间 fun getShowSendTime(): String?{ return sendTime?.dateChangePattern("yyyy-MM-dd HH:mm:ss","yyyy/MM/dd HH:mm:ss") } //获取显示取回时间 fun getShowReturnTime(): String?{ return returnTime?.dateChangePattern("yyyy-MM-dd HH:mm:ss","yyyy/MM/dd HH:mm:ss") } } app/src/main/java/com/xw/yunwei/ui/user/mine/scheduling/SchedulingVM.kt
@@ -7,6 +7,7 @@ import androidx.lifecycle.map import com.xw.common.base.BaseViewModel import com.xw.yunwei.R import com.xw.yunwei.extension.dateChangePattern import com.xw.yunwei.model.ClockInStatusModel import com.xw.yunwei.net.UserRepository import com.xw.yunwei.ui.user.mine.checkin.CheckInActivity @@ -27,7 +28,7 @@ val clockModel: MutableLiveData<ClockInStatusModel?> = MutableLiveData() val clockTime = clockModel.map { // "${it?.xpShift?.startTime ?: ""} - ${it?.xpShift?.restStartTime ?: ""} ${it?.xpShift?.restEndTime ?: ""} - ${it?.xpShift?.endTime ?: ""}" "${selectTime.value ?: ""} ${it?.xpShift?.startTime ?: ""}~${it?.xpShift?.endTime ?: ""}" "${selectTime.value?.dateChangePattern("yyyy-MM-dd","yyyy/MM/dd") ?: ""} ${it?.xpShift?.startTime ?: ""}~${it?.xpShift?.endTime ?: ""}" } val onClick = View.OnClickListener { app/src/main/java/com/xw/yunwei/ui/user/mine/upload/CertUploadVM.kt
@@ -78,7 +78,6 @@ progress.postValue(CertificateAuditInfo()) return } isUploading = true urls.forEach { if (it.value.isNullOrEmpty()) { @@ -86,6 +85,7 @@ return } } isUploading = true val files = mutableListOf<FileSelectBean>() urls.forEachIndexed { index, it -> app/src/main/java/com/xw/yunwei/ui/widget/CustomRefreshLayout.kt
New file @@ -0,0 +1,37 @@ package com.xw.yunwei.ui.widget import android.content.Context import android.util.AttributeSet import android.view.MotionEvent import com.scwang.smart.refresh.layout.SmartRefreshLayout //处理viewpager2+fragment+SmartRefreshLayout+recyclerView 手指上下滑动很容易变成触发viewpager2左右滑动 class CustomRefreshLayout @JvmOverloads constructor( context: Context, attrs: AttributeSet? = null, ) : SmartRefreshLayout(context, attrs) { private var startX = 0f private var startY = 0f override fun onInterceptTouchEvent(e: MotionEvent): Boolean { when (e.action) { MotionEvent.ACTION_DOWN -> { startX = e.x startY = e.y // DOWN 先让 VP2 能收到,不然后续 MOVE 它连机会都没 parent.requestDisallowInterceptTouchEvent(false) } MotionEvent.ACTION_MOVE -> { val dx = kotlin.math.abs(e.x - startX) val dy = kotlin.math.abs(e.y - startY) // 纵向主导 → 锁住,VP2 别抢;横向主导 → 放开给 VP2 翻页 parent.requestDisallowInterceptTouchEvent(dy > dx/2.5) } MotionEvent.ACTION_UP, MotionEvent.ACTION_CANCEL -> { parent.requestDisallowInterceptTouchEvent(false) } } return super.onInterceptTouchEvent(e) } } app/src/main/java/com/xw/yunwei/ui/widget/DirectionRecyclerView.kt
New file @@ -0,0 +1,40 @@ package com.xw.yunwei.ui.widget import android.content.Context import android.util.AttributeSet import android.util.Log import android.view.MotionEvent import androidx.recyclerview.widget.RecyclerView // class DirectionRecyclerView @JvmOverloads constructor( context: Context, attrs: AttributeSet? = null ) : RecyclerView(context, attrs) { private var startX = 0f private var startY = 0f override fun onInterceptTouchEvent(e: MotionEvent): Boolean { when (e.action) { MotionEvent.ACTION_DOWN -> { startX = e.x startY = e.y // 先让父 VP2 能拿到 DOWN,否则后续 MOVE 它连机会都没有 parent.requestDisallowInterceptTouchEvent(false) } MotionEvent.ACTION_MOVE -> { val dx = kotlin.math.abs(e.x - startX) val dy = kotlin.math.abs(e.y - startY) Log.d("xxx","dx==>$dx") Log.d("xxx","dy==>$dy") // 纵向主导 → RV 自己吃;横向主导 → 放开给 VP2 parent.requestDisallowInterceptTouchEvent(dy > dx) } MotionEvent.ACTION_UP, MotionEvent.ACTION_CANCEL -> { parent.requestDisallowInterceptTouchEvent(false) } } return super.onInterceptTouchEvent(e) } } app/src/main/java/com/xw/yunwei/ui/work/AMapFragment.kt
@@ -61,6 +61,9 @@ private var isMoved = false // 是否已经移动过地图 private var currentZoom = 14f /** Screen-Y ratio used for the initial auto-center on first GPS fix. 0.5 = screen center. */ var initialLocationScreenYRatio: Float = 0.5f private var polygonAreas = mutableListOf<Polygon>() // 面区域s var polylines = mutableListOf<Polyline>() // 线s var circles = mutableListOf<Circle>() // 圆s @@ -196,6 +199,7 @@ view.findViewById<AppCompatTextView>(R.id.name).text = marker.snippet return view } // 定制 InfoWindow 内容(如果 getInfoWindow 返回 null,则使用此方法) override fun getInfoContents(marker: Marker): View? { return null // 使用上面的 getInfoWindow @@ -205,7 +209,8 @@ private fun initSensor() { if (needSensor) { sensorManager = requireActivity().getSystemService(Context.SENSOR_SERVICE) as SensorManager sensorManager = requireActivity().getSystemService(Context.SENSOR_SERVICE) as SensorManager // 尝试获取方向传感器。TYPE_ORIENTATION已废弃,但兼容性好。 orientationSensor = sensorManager.getDefaultSensor(Sensor.TYPE_ORIENTATION) // 如果设备不支持TYPE_ORIENTATION,可以尝试使用更新的传感器类型,如TYPE_GAME_ROTATION_VECTOR @@ -273,7 +278,7 @@ updateLocationMarker(l.latitude, l.longitude) if (!isMoved) { isMoved = true moveToLocation() moveToLocation(initialLocationScreenYRatio) } } locationChangeCallback?.invoke(l) @@ -305,11 +310,11 @@ } /* 移动到当前定位 */ fun moveToLocation() { fun moveToLocation(targetScreenYRatio: Float = 0.5f) { locationMarker?.let { currentZoom = 16f val position = locationMarker!!.position moveTo(position.latitude, position.longitude) animateTo(position.latitude, position.longitude, currentZoom, targetScreenYRatio) } ?: run { ToastUtilCommon.showWarn("未获取到定位信息") } } @@ -324,7 +329,12 @@ } } fun animateTo(latitude: Double, longitude: Double, zoom: Float = currentZoom, targetScreenYRatio: Float = 0.5f) { fun animateTo( latitude: Double, longitude: Double, zoom: Float = currentZoom, targetScreenYRatio: Float = 0.5f ) { lifecycleScope.launchWhenResumed { val map = aMap ?: return@launchWhenResumed val height = mapView?.height ?: 0 @@ -336,7 +346,8 @@ // Analytically compute the camera offset so the marker lands at targetScreenYRatio // This avoids depending on current projection which would stack offsets on repeated calls val deltaYPixels = height * (0.5f - targetScreenYRatio) val metersPerPixel = 156543.03392 * Math.cos(Math.toRadians(latitude)) / Math.pow(2.0, zoom.toDouble()) val metersPerPixel = 156543.03392 * Math.cos(Math.toRadians(latitude)) / Math.pow(2.0, zoom.toDouble()) val deltaLat = deltaYPixels * metersPerPixel / 111320.0 val targetLatLng = LatLng(latitude + deltaLat, longitude) val update = CameraUpdateFactory.newLatLngZoom(targetLatLng, zoom) @@ -377,7 +388,8 @@ resId: Int, id: String, description: String? = null, anchorHeightRatio: Float=0.5f, anchorHeightRatio: Float = 0.5f, infoWindowOffsetY: Int = 0, ) { lifecycleScope.launchWhenResumed { aMap?.let { aMap -> @@ -389,9 +401,10 @@ .icon(centerIcon) .anchor(0.5f, anchorHeightRatio) // 将图标的中心点(而非左下角)设置为锚点,这样旋转更自然 .setFlat(true) // 重要:设置为平面模式,Marker可围绕锚点旋转 .title(description?:"") .snippet(description?:"") .title(description ?: "") .snippet(description ?: "") .draggable(true) .setInfoWindowOffset(0, infoWindowOffsetY) description?.let { markerOptions.title(tag) } marker = aMap.addMarker(markerOptions) @@ -422,7 +435,7 @@ } } fun clearMarks(){ fun clearMarks() { customMarkers.forEach { it.value.remove() } customMarkers.clear() } @@ -480,8 +493,12 @@ } else { marker.showInfoWindow() } currentBigMarker?.let { setMarkerScaleAnimation(it, 1.5f, 1.0f) } currentBigMarker?.let { setMarkerScaleAnimation(it, 1.5f, 1.0f) it.zIndex = 0f } setMarkerScaleAnimation(marker, 1.0f, 1.5f) marker.zIndex = 1f currentBigMarker = marker } app/src/main/java/com/xw/yunwei/ui/work/car/manage/CarManageActivity.kt
@@ -79,6 +79,8 @@ val transaction = supportFragmentManager.beginTransaction() transaction.add(com.xw.yunwei.R.id.map_container, mapFrag) transaction.commit() // halfExpandedRatio=0.58 → visible map area is top 42% of screen; midpoint = 0.21 mapFrag.initialLocationScreenYRatio = 0.55f initAdapter() setBehavior() refreshFilterStatus() @@ -116,7 +118,7 @@ binding.filter.setOnClickListener { viewModel.queryAreas { showFilterDialog() } } binding.location.setOnClickListener { mapFrag.moveToLocation() } binding.location.setOnClickListener { mapFrag.moveToLocation(0.55f) } binding.searchEt.setOnKeyListener { _, keyCode, event -> if (keyCode == KeyEvent.KEYCODE_ENTER && event.action == KeyEvent.ACTION_UP) { // if (viewModel.search.value.isNullOrEmpty()) { @@ -146,6 +148,10 @@ adapter.addData(0, it) adapter.selectItem = it adapter.notifyDataSetChanged() animateMapTo(it.latitude ?: 0.0, it.longitude ?: 0.0) mapFrag.findMarkerById("${it.id ?: ""}")?.let { marker -> mapFrag.clickMarker(marker) } } } } @@ -169,7 +175,8 @@ resId, "${it.id}", it.plateNumber, 0.75f 1f, (-20).dpToPx(this) ) } } @@ -421,7 +428,7 @@ override fun onItemClick(item: CarModel) { if ((item.latitude ?: 0.0) > 0 && (item.longitude ?: 0.0) > 0) { mapFrag.moveTo(item.latitude!!, item.longitude!!) animateMapTo(item.latitude!!, item.longitude!!) mapFrag.findMarkerById("${item.id ?: ""}")?.let { mapFrag.clickMarker(it) } @@ -437,4 +444,9 @@ private fun jumpToDetail(item: CarModel) { startActivity(CarDetailActivity::class.java, bundleOf("carId" to item.id)) } private fun animateMapTo(latitude: Double, longitude: Double) { val ratio = if (bottomSheetBehavior.state == BottomSheetBehavior.STATE_HALF_EXPANDED) 0.55f else 0.5f mapFrag.animateTo(latitude, longitude, targetScreenYRatio = ratio) } } app/src/main/java/com/xw/yunwei/ui/work/checkInMission/CheckInMissionPointsListActivity.kt
@@ -59,9 +59,7 @@ } adapter.setOnItemChildClickListener { adapter, view, i -> if (viewModel.pointsList.value!![i].hadCheckIn()) { //viewModel.showCheckInSuccessDialog(this, viewModel.pointsList.value!![i]) startActivity(CruiseCheckInOperationActivity::class.java, CruiseCheckInOperationActivity.getParams(viewModel.id,viewModel.pointsList.value!![i],false)) viewModel.showCheckInSuccessDialog(this, viewModel.pointsList.value!![i]) return@setOnItemChildClickListener } viewModel.routePlanning(i) app/src/main/java/com/xw/yunwei/ui/work/site/SiteNavActivity.kt
@@ -77,6 +77,8 @@ val transaction = supportFragmentManager.beginTransaction() transaction.add(com.xw.yunwei.R.id.map_container, mapFrag) transaction.commit() // halfExpandedRatio=0.58 → visible map area is top 42% of screen; midpoint = 0.21 mapFrag.initialLocationScreenYRatio = 0.55f initAdapter() setBehavior() // viewModel.query() @@ -186,7 +188,7 @@ // mapFrag.moveToLocation() mapFrag.getLocation()?.let { it -> mapFrag.setCurrentZoom(16f) mapFrag.animateTo(it.latitude, it.longitude) mapFrag.animateTo(it.latitude, it.longitude, targetScreenYRatio = 0.55f) } ?: run { ToastUtilCommon.showWarn("未获取到定位信息") } } mapFrag.locationChangeCallback = { location -> app/src/main/java/com/xw/yunwei/ui/work/site/SiteNavVM.kt
@@ -15,7 +15,7 @@ val workRepository: WorkRepository by inject() val filterStatus = listOf( "全部", "启用中", "已停用", "失效" "全部", "可运营", "待生效","启用中", "已停用", "失效" ) val selectStatus = mutableListOf<String>(filterStatus[0]) @@ -40,7 +40,7 @@ // map["operationStatus"] = // if (selectStatus.isNotEmpty()) selectStatus.map { filterStatus.indexOf(it) + 1 } // .joinToString(",") else null map["operationStatus"] = if(selectStatus.getOrNull(0) == filterStatus[0]) null else "${filterStatus.indexOf(selectStatus.getOrNull(0))+1}" map["operationStatus"] = if(selectStatus.getOrNull(0) == filterStatus[0]) null else "${filterStatus.indexOf(selectStatus.getOrNull(0))+3}" // map["operationStatus"] = if (selectStatus.isEmpty()) null else filterStatus.indexOf(selectStatus[0]) + 1 // map["pointType"] = null // 点位类型1运营点位 2测试点位 map["queryParams"] = search.value // 查询参数 app/src/main/res/layout/activity_scheduling.xml
@@ -284,7 +284,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="@dimen/dp_8" android:text='@{"打卡时间:"+viewModel.clockModel.xpClockIn.clockInTime}' android:text='@{"打卡时间:"+viewModel.clockModel.xpClockIn.getFormateClockInTime()}' android:textColor="@color/gray_8" android:textSize="@dimen/sp_14" android:textStyle="bold" @@ -368,7 +368,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="@dimen/dp_8" android:text='@{"打卡时间:"+viewModel.clockModel.xpClockIn.clockOutTime}' android:text='@{"打卡时间:"+viewModel.clockModel.xpClockIn.getFormateClockOutTime()}' android:textColor="@color/gray_8" android:textSize="@dimen/sp_14" android:textStyle="bold" app/src/main/res/layout/activity_site_nav.xml
@@ -278,19 +278,41 @@ app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintTop_toTopOf="parent" app:riv_corner_radius="@dimen/dp_5" /> <LinearLayout android:id="@+id/nav" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginEnd="@dimen/dp_20" android:gravity="center" android:orientation="vertical" app:layout_constraintTop_toTopOf="@id/icon" app:layout_constraintEnd_toEndOf="parent"> <androidx.appcompat.widget.AppCompatImageView android:layout_width="@dimen/dp_10" android:layout_height="@dimen/dp_10" android:src="@mipmap/icon_arrow_blue" /> <androidx.appcompat.widget.AppCompatTextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="去导航" android:textColor="@color/blue_5" android:textSize="@dimen/sp_12" /> </LinearLayout> <androidx.appcompat.widget.AppCompatTextView android:id="@+id/name" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_marginStart="@dimen/dp_8" android:layout_marginEnd="@dimen/dp_20" android:layout_marginEnd="@dimen/dp_8" android:maxLines="1" android:text="广州市白云机场T2航站楼" android:textColor="@color/gray_9" android:textSize="@dimen/sp_14" android:textStyle="bold" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toStartOf="@id/nav" app:layout_constraintStart_toEndOf="@+id/icon" app:layout_constraintTop_toTopOf="@+id/icon" /> @@ -298,13 +320,12 @@ android:id="@+id/address" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_marginTop="@dimen/dp_4" android:layout_marginRight="@dimen/dp_20" android:layout_marginTop="@dimen/dp_10" android:maxLines="2" android:text="深圳市宝安区西大街阳光绿色温馨家园17号楼313" android:textColor="@color/gray_6" android:textSize="@dimen/sp_12" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="@id/name" app:layout_constraintStart_toStartOf="@+id/name" app:layout_constraintTop_toBottomOf="@+id/name" /> @@ -338,31 +359,6 @@ android:visibility="gone" app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toBottomOf="@+id/address" /> <LinearLayout android:id="@+id/nav" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginEnd="@dimen/dp_20" android:layout_marginBottom="@dimen/dp_8" android:gravity="center" android:orientation="vertical" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent"> <androidx.appcompat.widget.AppCompatImageView android:layout_width="@dimen/dp_10" android:layout_height="@dimen/dp_10" android:src="@mipmap/icon_arrow_blue" /> <androidx.appcompat.widget.AppCompatTextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="去导航" android:textColor="@color/blue_5" android:textSize="@dimen/sp_12" /> </LinearLayout> </androidx.constraintlayout.widget.ConstraintLayout> app/src/main/res/layout/fragment_task_list.xml
@@ -6,7 +6,7 @@ </data> <com.scwang.smart.refresh.layout.SmartRefreshLayout <com.xw.yunwei.ui.widget.CustomRefreshLayout android:id="@+id/refreshLayout" android:layout_width="match_parent" android:layout_height="match_parent" @@ -17,6 +17,6 @@ android:layout_width="match_parent" android:layout_height="match_parent" /> </com.scwang.smart.refresh.layout.SmartRefreshLayout> </com.xw.yunwei.ui.widget.CustomRefreshLayout> </layout> app/src/main/res/layout/layout_normal_task_car_charge.xml
@@ -82,7 +82,7 @@ android:layout_height="wrap_content" android:layout_weight="1" android:textColor="@color/gray_7" android:text='@{"开始时间:" + viewModel.chargeModel.startTime}' android:text='@{"开始时间:" + viewModel.chargeModel.getShowStartTime()}' android:textSize="@dimen/sp_12" tools:text="开始时间:2026-09-31 11:00:09" /> app/src/main/res/layout/layout_normal_task_car_clear_detail.xml
@@ -84,7 +84,7 @@ android:gravity="end" android:maxLines="1" android:singleLine="true" android:text="@{viewModel.taskDetail.handleTime}" android:text="@{viewModel.taskDetail.getShowHandleTime()}" android:textColor="@color/gray_7" android:textSize="@dimen/sp_14" tools:text="2026-1-25 17:43:02" /> app/src/main/res/layout/layout_normal_task_car_nj_or_by_or_bx_detail.xml
@@ -84,7 +84,7 @@ android:gravity="end" android:maxLines="1" android:singleLine="true" android:text="@{viewModel.taskDetail.handleTime}" android:text="@{viewModel.taskDetail.getShowHandleTime()}" android:textColor="@color/gray_7" android:textSize="@dimen/sp_14" tools:text="2026-1-25 17:43:02" /> app/src/main/res/layout/layout_normal_task_car_repair.xml
@@ -34,7 +34,7 @@ android:layout_marginHorizontal="@dimen/dp_8" android:layout_weight="1" tools:text="送修时间:2026-2-6 16:35:56" android:text='@{"送修时间:" + viewModel.repairModel.sendTime}' android:text='@{"送修时间:" + viewModel.repairModel.getShowSendTime()}' android:textColor="@color/gray_9" android:textSize="@dimen/sp_14" /> app/src/main/res/layout/layout_normal_task_car_repair_detail.xml
@@ -101,7 +101,7 @@ android:layout_height="wrap_content" android:layout_marginTop="@dimen/dp_10" tools:text="2026年 xxxxx" android:text="@{viewModel.repairModel.sendTime}" android:text="@{viewModel.repairModel.getShowSendTime()}" android:textColor="@color/gray_7" android:textSize="@dimen/sp_14" /> @@ -200,7 +200,7 @@ android:layout_height="wrap_content" android:layout_marginTop="@dimen/dp_10" tools:text="2026年 xxxxx" android:text="@{viewModel.repairModel.returnTime}" android:text="@{viewModel.repairModel.getShowReturnTime()}" android:textColor="@color/gray_7" android:textSize="@dimen/sp_14" /> app/src/main/res/layout/layout_normal_task_charge_detail.xml
@@ -93,7 +93,7 @@ android:layout_height="wrap_content" android:layout_centerVertical="true" tools:text="2026-09-09 11:09:09" android:text='@{viewModel.chargeModel.startTime}' android:text='@{viewModel.chargeModel.getShowStartTime()}' android:textColor="@color/gray_7" android:textSize="@dimen/sp_12" /> @@ -186,7 +186,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerVertical="true" android:text='@{viewModel.chargeModel.endTime}' android:text='@{viewModel.chargeModel.getShowEndTime()}' tools:text="2026-09-09 11:09:09" android:textColor="@color/gray_7" android:textSize="@dimen/sp_12" /> app/src/main/res/layout/layout_normal_task_check_detail.xml
@@ -82,7 +82,7 @@ android:gravity="end" android:maxLines="1" android:singleLine="true" android:text="@{viewModel.checkModel.checkTime}" android:text="@{viewModel.checkModel.getShowCheckTime()}" tools:text="2026-2-5 17:47:08" android:textColor="@color/gray_9" android:textSize="@dimen/sp_14" /> app/src/main/res/mipmap-xhdpi/ic_map_car_g.pngBinary files differ
app/src/main/res/mipmap-xhdpi/ic_map_car_r.pngBinary files differ
app/src/main/res/mipmap-xhdpi/ic_map_site_g.pngBinary files differ
app/src/main/res/mipmap-xhdpi/ic_map_site_r.pngBinary files differ
app/src/main/res/mipmap-xhdpi/img_work_report.pngapp/src/main/res/mipmap-xxhdpi/ic_map_car_g.png
app/src/main/res/mipmap-xxhdpi/ic_map_car_r.png
app/src/main/res/mipmap-xxhdpi/ic_map_site_g.png
app/src/main/res/mipmap-xxhdpi/ic_map_site_r.png
common/src/main/java/com/xw/common/custom/ShowTextLinearLayout.kt
@@ -469,15 +469,11 @@ val tv = AppCompatTextView(context!!) // 长度限制 val maxLength = 30 val displayText = if (name.length > maxLength) { name.take(maxLength) + "…" } else { name } val displayText = name tv.text = displayText tv.setTextSize(TypedValue.COMPLEX_UNIT_PX, text_size.toFloat()) //设置字体大小 像素单位 tv.setTextColor(textColor) tv.setGravity(Gravity.CENTER) tv.setGravity(Gravity.CENTER_VERTICAL) tv_list.add(tv) tv.tag = tv_list.size - 1