瀏覽代碼

[new]轨迹详情增加额外高度显示

zk 6 月之前
父節點
當前提交
37a7ce8b04

+ 10 - 0
lib/module/track/track_controller.dart

@@ -47,6 +47,8 @@ class TrackController extends BaseController
   final selectPadding =
       MapPadding(left: 80.w, top: 150.w, right: 80.w, bottom: Get.height / 2);
 
+  final RxDouble trackBottomHeight = RxDouble(330.w);
+
   final TrackRepository trackRepository;
   final FriendsRepository friendsRepository;
   final AccountRepository accountRepository;
@@ -161,6 +163,14 @@ class TrackController extends BaseController
 
   setSheetProgress(double progress) {
     _sheetProgress.value = progress;
+    if (progress >= 1) {
+      trackBottomHeight.value = 0;
+    } else if (progress <= 0.45) {
+      trackBottomHeight.value = 330.w;
+    } else {
+      double percent = (1 - progress) / (1 - 0.45);
+      trackBottomHeight.value = 330.w * percent;
+    }
   }
 
   void onCurrentLocationClick() async {

+ 1 - 0
lib/module/track/track_day_detail/track_daily_item.dart

@@ -341,6 +341,7 @@ Widget _buildLockDesc(int? highUnlock, int? totalUnlock) {
   if ((highUnlock == null && totalUnlock == null) ||
       (highUnlock == 0 && totalUnlock == 0)) {
     return GestureDetector(
+      behavior: HitTestBehavior.opaque,
       onTap: () {
         ToastUtil.show("",
             displayTime: Duration(seconds: 3),

+ 4 - 0
lib/module/track/track_day_detail/track_day_detail_controller.dart

@@ -73,6 +73,10 @@ class TrackDayDetailController extends BaseController {
 
   final RxnString _summaryError = RxnString();
 
+  RxDouble get _trackBottomHeight => trackController.trackBottomHeight;
+
+  double get trackBottomHeight => _trackBottomHeight.value;
+
   CancelableFuture? requestTrackFuture;
 
   String? get summaryError => _summaryError.value;

+ 12 - 0
lib/module/track/track_day_detail/track_day_detail_view.dart

@@ -72,6 +72,9 @@ class TrackDayDetailView extends BaseView<TrackDayDetailController> {
               child: buildTrackDailySummaryView(),
             ),
             SliverToBoxAdapter(
+              child: buildTrackExtraBottomView(),
+            ),
+            SliverToBoxAdapter(
                 child: Container(
               height: 80.w,
               color: '#F8F5FF'.color,
@@ -83,6 +86,15 @@ class TrackDayDetailView extends BaseView<TrackDayDetailController> {
     );
   }
 
+  Widget buildTrackExtraBottomView() {
+    return Obx(() {
+      return Container(
+        height: controller.trackBottomHeight,
+        color: '#F8F5FF'.color,
+      );
+    });
+  }
+
   Widget buildTrackDailySummaryView() {
     return RepaintBoundary(
       key: controller.shareGlobalKey,