iT邦幫忙

2023 iThome 鐵人賽

DAY 18
0
Mobile Development

攜手神隊友ChatGPT:攝護腺自我照護App開發歷程!系列 第 18

D18-Flutter中的優雅日曆,醫療數據追蹤之旅_part1

  • 分享至 

  • xImage
  •  

Part1:今日目標

1.前言
2.介面設計
3.程式碼架構: Date_Range_Picker_Widget.dart
4.結語

Part2:今日內容

1.前言

終於結束連續好幾天的程式碼架構介紹和實作,能走到下一個部分啦! 接下來要介紹日期選擇器的widget,藉由這個widget,使用者能選擇特定時間內的測驗歷史總分,能達到以下好處:

  • 協助使用者和醫生追蹤特定時期的攝護腺肥大病情狀況。透過走勢圖,醫療人員和使用者能共同討論藥品治療效果,更準確的掌握治療效果。
  • 當App蒐集大量的使用者數據後,透過嚴謹的去識別化技術,能將這些數據進行研究,協助攝護腺肥大治療或衛教活動。

總結以上,提供特定時間段數據有其重要性,接下來的文章就讓我們來介紹這部分的功能是如何在 Flutter x Dart 中實踐的吧!

2.介面設計

https://ithelp.ithome.com.tw/upload/images/20230921/20120073ozA7KuRNOM.png

  • 設定兩個點選按鈕: 選擇開始日期 & 選擇結束日期
  • 自定義: 日曆樣式的日期選擇器,提供優美且好操作的介面

3.程式碼架構: Date_Range_Picker_Widget.dart

這份 Dart 程式碼是一個 Flutter 應用程式中的自定義 widget,它提供了日期範圍選擇的功能。以下是這份程式碼的主要架構和功能簡介:
https://ithelp.ithome.com.tw/upload/images/20230921/20120073Gz1VLK7BFi.png

(1)DateRangePickerWidget Class

  • 功能:這個類別是一個自定義 Flutter widget,用於實現日期範圍的選擇功能。
  • 介面/功能:
    • 提供兩個按鈕,用戶可以點擊這些按鈕來選擇開始日期和結束日期。
    • 顯示選擇的開始日期和結束日期,這兩個日期會隨著用戶的選擇而更新。
    • 接受一個回調函式 onDateRangeSelected,當用戶選擇日期範圍時,該回調函式會被呼叫,以便應用程式可以處理所選日期範圍。

(2)_DateRangePickerWidgetState Class

  • 功能:這個類別是 DateRangePickerWidget 的狀態管理器,用於處理日期選擇和狀態管理。
  • 介面/功能:
    • 處理選擇開始日期的操作,顯示日期選擇器供用戶選擇日期。
    • 處理選擇結束日期的操作,同樣顯示日期選擇器。
    • 更新 _startDate_endDate 變數,以便在選擇日期後重新繪製界面。
    • _startDate_endDate 變數用於存儲選擇的日期,並在用戶的選擇發生變化時更新。

總結

DateRangePickerWidget Class 主要負責定義外觀和用戶界面,而 _DateRangePickerWidgetState Class 主要負責實現日期選擇的邏輯和狀態管理。這樣的設計分離了界面和邏輯,使程式碼更容易維護和擴展。

4.結語

明後天的文章,我們將詳細說明 Date_Range_Picker_Widget.dart 這個檔案的實作內容和相關設定,那我們就明天見囉!

孫子兵法〈兵勢篇〉:「將者國之輔也,輔周則國必強,輔隙則國必弱。」
The general is the nation's support; when they work closely together, the nation thrives; otherwise, it weakens.
將領和君主的關係如果合作無間,國家就會強大;相反地,如果兩者有嫌隙或關係疏遠,國家就會衰弱。 來源
如果嫌棄抱怨下屬又不願花時間和心力領導教導,這種領導者的團隊終將會瓦解: 一個小漏洞可以沉沒一艘大船
"A small leak can sink a great ship." - Benjamin Franklin


上一篇
D17-Flutter x Dart視覺化魔法,攝護腺量表走勢圖_part4
下一篇
D19-Flutter中的優雅日曆,醫療數據追蹤之旅_part2
系列文
攜手神隊友ChatGPT:攝護腺自我照護App開發歷程!30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言