clean_settings
समझदार डिफ़ॉल्ट के साथ सेटिंग यूआई जनरेटर। बॉयलरप्लेट कोड की आवश्यकता को हटा देता है और एक समृद्ध सेट उच्च राय वाले विजेट प्रदान करता है।
समझदार डिफ़ॉल्ट के साथ सेटिंग्स UI जनरेटर
{"sdk":"flutter"}{"sdk":"flutter"}^1.9.2यह अंग्रेज़ी मूल स्नैपशॉट है। नवीनतम सामग्री GitHub पर देखें।
Settings UI generator with sane defaults.
Creating a settings screen requires the same boiler plate code over and over. Settings also need a rich set of widgets to cover all possible cases. This library aims to provide sane defaults while creating a setting screen.
Checkbox Widget
SettingCheckboxItem(
title: 'Smart Reply',
value: smartReply,
onChanged: (v) => setState(() => smartReply = v),
description: 'Show suggested replies when available'),
Switch Widget
SettingSwitchItem(
title: 'Smart Compose',
value: smartCompose,
onChanged: (v) => setState(() => smartCompose = v),
description: 'Show predictive writing suggestions',
priority: ItemPriority.high,
),
Radio Picker
SettingRadioItem<String>(
title: 'Theme',
displayValue: '$theme theme',
selectedValue: theme,
items: [
SettingRadioValue('Light', 'Light'),
SettingRadioValue('Dark', 'Dark'),
SettingRadioValue('System Default', 'System Default'),
],
onChanged: (v) => setState(() => theme = v),
),
Text Input
SettingTextItem(
title: 'Auto Reply Message',
displayValue: autoReplyMessage,
initialValue: autoReplyMessage,
hintText: 'Sent by system on away',
onChanged: (v) => setState(() => autoReplyMessage = v),
),
Date Time Picker
SettingDateTimeItem<DateTime>(
title: 'Next Scheduled Email At',
displayValue: scheduledEmailSlug,
onChanged: (v) => setState(() => scheduledEmailDateTime = v),
),
Date Picker
SettingDateTimeItem<DateTime>(
title: 'Date of birth',
displayValue: dateOfBirthSlug,
onChanged: (v) => setState(() => dateOfBirth = v),
timePicker: false,
),
Time Picker
SettingDateTimeItem<TimeOfDay>(
title: 'Daily wake up email',
displayValue: dailyEmailAt.format(context),
onChanged: (v) => setState(() => dailyEmailAt = v),
datePicker: false,
),
Wheel Number
SettingWheelPickerItem(
title: 'Days of mail to sync',
displayValue: daysOfMailToSync.toString(),
initialValueIndex: daysOfMailToSync,
items: List.generate(10, (index) => index.toString()),
onChanged: (v) => setState(() => daysOfMailToSync = v),
),
Wheel Text
var replyOptions = ['Reply', 'Reply All', 'Last Chosen', 'None'];
SettingWheelPickerItem(
title: 'Default reply action',
displayValue: replyOptions[chosenReplyOptionIndex],
initialValueIndex: chosenReplyOptionIndex,
items: replyOptions,
onChanged: (v) => setState(() => chosenReplyOptionIndex = v),
),
Confirm Dialog
SettingConfirmItem(
title: 'Delete account',
displayValue: 'Permanently deletes your account',
alertTitle: 'Delete your account',
alertMessage: 'Are you sure?',
priority: ItemPriority.high,
onConfirm: () => {},
onCancel: () => {},
),
Custom Handler
SettingItem(
title: 'Simple Counter',
displayValue: counter.toString(),
onTap: () => setState(() => counter++),
),
Root - SettingContainer
\
\_ SettingSection
\
\_ SettingItem (or Variants)
prioritySet the priority of the item to one of:
ItemPriority.high - Shows red colorItemPriority.normal - Default colorItemPriority.low - Shows in green colorItemPriority.disabled - Disables the itemCreates a simple Checkbox setting item
SettingContainer(
sections: [
SettingSection(
title: 'Appearance',
items: [
SettingCheckboxItem(
title: 'Smart Reply',
value: smartReply,
onChanged: (v) => setState(() => smartReply = v),
description: 'Show suggested replies when available'),
],
),
],
)