Skip to content

Commit

Permalink
feat: list ui fixed
Browse files Browse the repository at this point in the history
  • Loading branch information
SeoHyeonSim committed Jan 19, 2025
1 parent 7580cd9 commit 61d2d4f
Show file tree
Hide file tree
Showing 6 changed files with 58 additions and 49 deletions.
4 changes: 2 additions & 2 deletions lib/screens/alarm_screen_new.dart
Original file line number Diff line number Diff line change
Expand Up @@ -381,7 +381,7 @@ class _AlarmScreenNewState extends State<AlarmScreenNew>
),
// 준비 과정 목록
Positioned(
top: 20,
top: 15,
left: MediaQuery.of(context).size.width * 0.06,
right: MediaQuery.of(context).size.width * 0.06,
bottom: 100,
Expand All @@ -401,7 +401,7 @@ class _AlarmScreenNewState extends State<AlarmScreenNew>
children: [
SizedBox(
width: MediaQuery.of(context).size.width,
height: 100,
height: 90,
child: Container(
decoration: const BoxDecoration(
color: Colors.white,
Expand Down
54 changes: 27 additions & 27 deletions lib/screens/early_late_messages.dart
Original file line number Diff line number Diff line change
Expand Up @@ -2,21 +2,21 @@ import 'dart:math';

/// 지각 시 표시될 문구들
final List<String> lateMessages = [
"지구의 자전이 너무 빨랐나 봐요!/ 조금 늦었지만 괜찮아요!",
"시간이 당신을 기다리지 않았지만,/ 사람들은 기다려줄 거예요. 아마도요.",
"‘시간은 금이다’고 했지만,/ 오늘은 그 금을 잠시 빌려 쓴 것 같네요!",
"지각의 달인이 되고 싶지 않다면,/ 조금 더 일찍 출발해보아요!",
"늦었다고 서두르다 넘어지면 더 늦어요./ 살짝 서둘러봐요!",
"시공간을 뛰어넘는/ 타임머신이 있었으면 좋겠어요…!",
"조금 늦긴 했지만,/ 오늘의 기분을 망칠 수는 없죠./ 어서 가보자구요!",
"늦은 것 자체가 죄는 아니지만,/ 더 나은 시간을 만드는 건 우리의 몫이죠.",
"이미 마음은 현장에 도착해 있었는데,/ 몸이 따라오질 않았네요.",
"영화 주인공은 늦게 등장하는 법이라던가…?/ 그 기분으로 출발!",
"달력이 오늘을 운명의 날로 정해놨나 봐요./ 하지만 우린 이길 수 있어요!",
"시간은 도망갔지만,/ 당신의 열정은 따라잡을 수 있어요!",
"오늘의 체크리스트는 완벽했지만,/ 시간이 체크리스트에 없었던 건가요?",
"오늘의 지각은 역사를 만들었군요!/ 다음엔 새로운 기록을 세우지 않도록 해봐요!",
"지각계의 마스터가 되어가고 있어요./ 하지만 이제 새로운 길을 찾아봐요!",
"지구의 자전이 너무 빨랐나 봐요!\n조금 늦었지만 괜찮아요!",
"시간이 당신을 기다리지 않았지만,\n사람들은 기다려줄 거예요. 아마도요.",
"‘시간은 금이다’고 했지만,\n오늘은 그 금을 잠시 빌려 쓴 것 같네요!",
"지각의 달인이 되고 싶지 않다면,\n조금 더 일찍 출발해보아요!",
"늦었다고 서두르다 넘어지면 더 늦어요.\n살짝 서둘러봐요!",
"시공간을 뛰어넘는\n타임머신이 있었으면 좋겠어요…!",
"조금 늦긴 했지만,\n오늘의 기분을 망칠 수는 없죠.\n어서 가보자구요!",
"늦은 것 자체가 죄는 아니지만,\n 나은 시간을 만드는 건 우리의 몫이죠.",
"이미 마음은 현장에 도착해 있었는데,\n몸이 따라오질 않았네요.",
"영화 주인공은 늦게 등장하는 법이라던가…?\n 기분으로 출발!",
"달력이 오늘을 운명의 날로 정해놨나 봐요.\n하지만 우린 이길 수 있어요!",
"시간은 도망갔지만,\n당신의 열정은 따라잡을 수 있어요!",
"오늘의 체크리스트는 완벽했지만,\n시간이 체크리스트에 없었던 건가요?",
"오늘의 지각은 역사를 만들었군요!\n다음엔 새로운 기록을 세우지 않도록 해봐요!",
"지각계의 마스터가 되어가고 있어요.\n하지만 이제 새로운 길을 찾아봐요!",
];

/// 일찍 준비 시, 분 단위 구간별 문구 맵
Expand All @@ -27,32 +27,32 @@ final Map<Range, List<String>> earlyMessages = {
],
Range(6, 10): [
"택시비를 아꼈어요!",
"심호흡 한 번 하고 천천히 걸어갈 시간이 생겼어요.",
"심호흡 한 번 하고\n천천히 걸어갈 시간이 생겼어요.",
],
Range(11, 15): [
"즐거운 커피 한 잔의 여유를 얻었어요.",
"횡단보도 신호를 기다릴 스트레스에서 벗어났어요.",
"즐거운 커피 한 잔의\n여유를 얻었어요.",
"횡단보도 신호를 기다릴\n스트레스에서 벗어났어요.",
],
Range(16, 20): [
"지하철 환승을 여유롭게 할 수 있어요.",
"친구를 만나기 전에 간단히 메시지를 보낼 시간이 생겼어요.",
"친구를 만나기 전에\n간단히 메시지를 보낼 시간이 생겼어요.",
],
Range(21, 30): [
"출발 전에 잊은 물건을 챙길 기회가 생겼어요!",
"예정 시간보다 빠르게 도착해서 장소를 한 바퀴 둘러볼 수 있어요.",
"출발 전에 잊은 물건을\n챙길 기회가 생겼어요!",
"예정 시간보다 빠르게 도착해서\n장소를 한 바퀴 둘러볼 수 있어요.",
],
Range(31, 40): [
"부모님께 전화를 걸 여유로운 시간을 벌었어요.",
"조금 더 준비된 모습으로 상대를 만날 수 있어요.",
"부모님께 전화를 걸\n여유로운 시간을 벌었어요.",
"조금 더 준비된 모습으로\n상대를 만날 수 있어요.",
],
Range(41, 59): [
"영화 예고편을 보며 시간을 보낼 수 있어요!",
"약속 장소에서 조용히 책 몇 페이지를 읽을 수 있어요.",
"영화 예고편을 보며\n시간을 보낼 수 있어요!",
"약속 장소에서\n조용히 책 몇 페이지를 읽을 수 있어요.",
],
Range(60, 9999): [
Range(60, 99999999999): [
// 1시간 이상 (60분 이상)
"삶의 소소한 여유를 얻었어요!",
"지각 걱정 없이 미리 가서 주변을 살펴볼 수 있어요.",
"지각 걱정 없이 미리 가서\n주변을 살펴볼 수 있어요.",
],
};

Expand Down
10 changes: 7 additions & 3 deletions lib/screens/early_late_screen.dart
Original file line number Diff line number Diff line change
Expand Up @@ -83,11 +83,13 @@ class _EarlyLateScreenState extends State<EarlyLateScreen> {
SizedBox(height: screenHeight * 0.02),
SizedBox(
width: 292,
height: 60,
child: Text(
earlylateMessage,
style: const TextStyle(
fontSize: 16,
fontWeight: FontWeight.bold,
height: 1.8,
),
textAlign: TextAlign.center,
),
Expand All @@ -97,14 +99,14 @@ class _EarlyLateScreenState extends State<EarlyLateScreen> {
),
),
Padding(
padding: EdgeInsets.only(top: screenHeight * 0.02),
padding: EdgeInsets.only(top: screenHeight * 0.01),
child: Image.asset(
'lib/images/ontime_mascot.png',
width: 150,
height: 150,
),
),
SizedBox(height: screenHeight * 0.05),
SizedBox(height: screenHeight * 0.02),
Center(
child: SizedBox(
width: screenWidth * 0.9,
Expand Down Expand Up @@ -149,7 +151,9 @@ class _EarlyLateScreenState extends State<EarlyLateScreen> {
),
],
),
// Positioned를 이용한 버튼 배치
SizedBox(
height: 10,
),
Positioned(
bottom: 20, // 하단에서 20px 떨어짐
left: 0,
Expand Down
2 changes: 1 addition & 1 deletion lib/test_data/t_schedule_data.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
"placeName": "강남역 3번 출구",
"scheduleName": "데이트",
"moveTime": "01:00:00",
"scheduleTime": "2025-01-19T23:00:00",
"scheduleTime": "2025-01-31T23:00:00",
"scheduleSpareTime": 20,
"scheduleNote": "영화 데이트 하기",
"latenessTime": 30,
Expand Down
14 changes: 8 additions & 6 deletions lib/widgets/preparation_step_list.dart
Original file line number Diff line number Diff line change
Expand Up @@ -32,22 +32,23 @@ class PreparationStepList extends StatelessWidget {
child: SizedBox(
width: 329,
child: ListView.builder(
reverse: true,
shrinkWrap: true,
itemCount: preparations.length,
itemBuilder: (context, index) {
final reversedIndex = preparations.length - 1 - index;
final preparation = preparations[reversedIndex];
final stepNumber = reversedIndex + 1;
final preparation = preparations[index];
final stepNumber = index + 1;

// 마지막 항목 판별
final bool isLastItem = (index == preparations.length - 1);

// 각 목록 별 누적 시간
final int elapsed = preparation['elapsedTime'] ?? 0;

// 각 목록 별 상태(done, now, yet)
final String state;
if (reversedIndex < currentIndex) {
if (index < currentIndex) {
state = 'done';
} else if (reversedIndex == currentIndex) {
} else if (index == currentIndex) {
state = 'now';
} else {
state = 'yet';
Expand All @@ -62,6 +63,7 @@ class PreparationStepList extends StatelessWidget {
state: state,
onSkip: state == 'now' ? () => onSkip() : null,
elapsedTime: elapsed,
isLastItem: isLastItem,
);
},
),
Expand Down
23 changes: 13 additions & 10 deletions lib/widgets/preparation_step_tile.dart
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ class PreparationStepTile extends StatefulWidget {
final String state;
final VoidCallback? onSkip;
final int elapsedTime;
final bool isLastItem;

const PreparationStepTile({
super.key,
Expand All @@ -17,6 +18,7 @@ class PreparationStepTile extends StatefulWidget {
required this.state,
required this.elapsedTime,
this.onSkip,
required this.isLastItem,
});

@override
Expand Down Expand Up @@ -169,17 +171,18 @@ class _PreparationStepTileState extends State<PreparationStepTile> {
),
),
// 점선
Padding(
padding: const EdgeInsets.only(left: 30),
child: DottedLine(
direction: Axis.vertical,
lineLength: 23,
lineThickness: 3,
dashColor: const Color(0xff5C79FB),
dashLength: 4,
dashGapLength: 5,
if (!widget.isLastItem)
Padding(
padding: const EdgeInsets.only(left: 30),
child: DottedLine(
direction: Axis.vertical,
lineLength: 23,
lineThickness: 3,
dashColor: const Color(0xff5C79FB),
dashLength: 4,
dashGapLength: 5,
),
),
),
],
);
}
Expand Down

0 comments on commit 61d2d4f

Please sign in to comment.