Skip to content

Commit b14dbe3

Browse files
Part 11 -Priority Setup
1 parent 42d7c35 commit b14dbe3

2 files changed

Lines changed: 66 additions & 1 deletion

File tree

lib/screen/note_detail_page.dart

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import 'package:drift/drift.dart' as dr;
22
import 'package:flutter/material.dart';
33
import 'package:note_keeper/database/database.dart';
4+
import 'package:note_keeper/util/priority_picker.dart';
45
import 'package:provider/provider.dart';
56

67
class NoteDetailPage extends StatefulWidget {
@@ -18,12 +19,16 @@ class _NoteDetailPageState extends State<NoteDetailPage> {
1819
late AppDatabase appDatabase;
1920
late TextEditingController titleEditingController;
2021
late TextEditingController descriptionEditingController;
22+
int priorityLevel = 0;
23+
int colorLevel = 0;
2124
@override
2225
void initState() {
2326
titleEditingController = TextEditingController();
2427
descriptionEditingController = TextEditingController();
2528
titleEditingController.text = widget.noteCompanion.title.value;
2629
descriptionEditingController.text = widget.noteCompanion.description.value;
30+
priorityLevel = widget.noteCompanion.priority.value!;
31+
colorLevel = widget.noteCompanion.color.value!;
2732
super.initState();
2833
}
2934

@@ -33,9 +38,18 @@ class _NoteDetailPageState extends State<NoteDetailPage> {
3338
return Scaffold(
3439
appBar: _getDetailAppBar(),
3540
body: Container(
36-
padding: const EdgeInsets.symmetric(horizontal: 20, vertical: 10),
41+
padding: const EdgeInsets.symmetric(horizontal: 10, vertical: 10),
3742
child: Column(
3843
children: [
44+
PriorityPicker(
45+
index: priorityLevel,
46+
onTap: (selectedIndex) {
47+
priorityLevel = selectedIndex;
48+
},
49+
),
50+
SizedBox(
51+
height: 10,
52+
),
3953
TextFormField(
4054
controller: titleEditingController,
4155
decoration: InputDecoration(

lib/util/priority_picker.dart

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
import 'package:flutter/cupertino.dart';
2+
import 'package:flutter/material.dart';
3+
4+
class PriorityPicker extends StatefulWidget {
5+
int index;
6+
Function(int) onTap;
7+
PriorityPicker({Key? key, required this.index, required this.onTap})
8+
: super(key: key);
9+
10+
@override
11+
_PriorityPickerState createState() => _PriorityPickerState();
12+
}
13+
14+
class _PriorityPickerState extends State<PriorityPicker> {
15+
List<String> nameList = ['Low', 'High', 'Very High'];
16+
List<Color> colorList = [Colors.green, Colors.greenAccent, Colors.red];
17+
@override
18+
Widget build(BuildContext context) {
19+
return Container(
20+
width: MediaQuery.of(context).size.width,
21+
height: 50,
22+
child: ListView.builder(
23+
scrollDirection: Axis.horizontal,
24+
itemCount: nameList.length,
25+
itemBuilder: (context, index) {
26+
return InkWell(
27+
onTap: () {
28+
widget.index = index;
29+
setState(() {});
30+
},
31+
child: Container(
32+
margin: EdgeInsets.only(right: 5),
33+
decoration: BoxDecoration(
34+
borderRadius: BorderRadius.circular(5),
35+
border: Border.all(color: Colors.black),
36+
color:
37+
widget.index == index ? colorList[index] : Colors.white),
38+
width: MediaQuery.of(context).size.width / 3.4,
39+
child: Center(
40+
child: Text(
41+
nameList[index],
42+
style: TextStyle(
43+
color: widget.index == index ? Colors.white : Colors.black),
44+
)),
45+
),
46+
);
47+
},
48+
),
49+
);
50+
}
51+
}

0 commit comments

Comments
 (0)