Mudah digunakan, mudah dikustomisasi.
Sekumpulan widget yang sudah dikustomisasi untuk dapat lebih memudahkan dalam menggunakannya.
Pertama untuk mengatur nilai default untuk setiap Widget, anda dapat mengatur MagicFactory di main.dart
MagicFactory.initMagicFactory(
colorBrand: Colors.blue,
colorBrand2: Colors.pink,
);
Properti [MagicFactory] yang dapat digunakan
Nama | Tipe | Keterangan |
---|---|---|
colorBrand | Color | [REQUIRED] Mengatur warna utama |
colorBrand2 | Color | [REQUIRED] Mengatur warna sekunder |
colorStroke | Color? | Mengatur warna border, digunakan untuk warna border di MagicButton |
colorText | Color? | Mengatur warna teks untuk MagicText |
colorDisable | Color? | Mengatur warna disable, seperti digunakan untuk MagicButton disable |
colorError | Color? | Mengatur warna error |
fontFamily | FontFamily? | Mengatur Font |
magicTextStyle | MagicTextStyle? | Mengatur style default untuk MagicText |
magicTextFieldBorder | MagicTextFieldBorder? | Mengatur border untuk MagicTextField |
buttonBorderRadius | double? | Mengatur radius untuk MagicButton atau MagicTextField |
useScreenUtil | bool | Mengatur penggunaan ScreenUtil. Jika bernilai true maka fontSize akan dikonversi ke .sp |
limitSmallMediumScreen | double? | Mengatur batas. width < limit = Small dan width > limit = Medium |
limitMediumLargeScreen | double? | Mengatur batas. width < limit = Medium dan width > limit = Large |
iconSuccess | Widget? | Mengatur icon Success dialog ketika EnumIconDialogType.success |
iconFailed | Widget? | Mengatur icon Success dialog ketika EnumIconDialogType.failed |
iconWarning | Widget? | Mengatur icon Success dialog ketika EnumIconDialogType.warning |
Jika anda ingin mengimplementasikan ScrenUtil maka anda wajib menuliskan kode berikut di main.dart
ScreenUtilInit(
minTextAdapt: true,
splitScreenMode: true,
child: YourMaterialApp, //Jika anda menggunakan GetX
builder: YourMaterialApp, //Jika anda tidak menggunakan GetX
)
Baca selengkapnya di Flutter ScreenUtil
- MagicText - Widget Text
- MagicTextIcon - Widget Text dengan Gambar
- MagicButton - Widget Tombol
- MagicTextField - Widget TextField
- MagicDropdown - Widget Dropdown
- MagicAutoComplete - Widget AutoComplete
- MagicDialog - Widget Dialog
- MagicLayout - Widget Mengatur Responsive Layout
Sebuah Kustomisasi Widget Text.
MagicText(
"Magic Text Created By Hanif Abdullah",
)
Secara default gaya (style) MagicView diatur dari variabel [MagicFactory.magicTextStyle] dengan properti berikut
static MagicTextStyle magicTextStyle = MagicTextStyle(
maxLines: null,
textAlign: null,
textOverflow: null,
fontFamily: fontFamily,
fontSize: 14,
fontWeight: FontWeight.normal,
color: colorText,
fontStyle: FontStyle.normal,
);
Terdapat 2 cara untuk mengatur gaya (style) untuk widget ini :
- Mengisi property style, maka Widget akan diatur menyesuaikan seluruh property yang ada didalamnya
MagicText(
"Magic Text Created By Hanif Abdullah",
style: MagicTextStyle(
maxLines: 1,
fontWeight: FontWeight.normal,
fontFamily: FontFamily.lato,
color: Colors.black,
fontSize: 14,
fontStyle: FontStyle.normal,
textOverflow: null,
textAlign: null
)
)
- Mengisi property selain style, maka Widget akan diatur sesuai property yang diisi saja. Property yang kosong akan menyesuaikan dari default MagicTextStyle [MagicFactory.magicTextStyle]
MagicText(
"Magic Text Created By Hanif Abdullah",
fontWeight: FontWeight.normal,
fontFamily: FontFamily.lato,
color: Colors.black,
fontSize: 14,
)
Terdapat 4 tipe yang disediakan untuk menggunakan MagicText
- Default
MagicText("teks");
- Head (default ukuran font = 18 dan ketebalan font = FontWeight.bold)
MagicText.head('teks');
- Subhead (default ukuran font = 16 dan ketebalan font = FontWeight.w600)
MagicText.subhead('teks');
- Hint (default ukuran font = 12 dan ketebalan font = FontWeight.w400)
MagicText.hint('teks');
Properti [MagicTextStyle] yang dapat digunakan
Nama | Tipe | Keterangan |
---|---|---|
maxLines |
int? |
Mengatur maksimal baris dalam Widget |
textAlign |
TextAlign? |
Mengatur perataan teks |
textOverflow |
TextOverflow? |
Mengatur |
fontFamily |
FontFamily? |
Mengatur jenis dari font |
fontWeight |
FontWeight? |
Mengatur ketebalan dari font |
fontSize |
int? |
Mengatur ukuran dari font |
fontStyle |
FontStyle? |
Mengatur gaya dari font (normal/miring) |
letterSpacing |
double? |
Mengatur jarak antar huruf |
color |
Color? |
Mengatur warna dari font |
decoration |
TextDecoration? |
Mengatur dekorasi |
decorationStyle |
TextDecorationStyle? |
Mengatur gaya dekorasi |
decorationColor |
Color? |
Mengatur warna dekorasi |
decorationThickness |
double? |
Mengatur ketebalan dekorasi |
Sebuah kustomisasi Widget Text dengan Gambar.
Terdapat 3 tipe yang dapat dipakai
asset
Memuat gambar dari aset lokal
MagicTextIcon.asset(
"MagicTextIcon",
asset: "assets/asset-example.png",
side: MagicTextIconSide.left,
spaces: 8,
width: 16,
height: 16,
textStyle: MagicFactory.magicTextStyle,
horizontalAlignment: MainAxisAlignment.start,
verticalAlignment: CrossAxisAlignment.start,
)
network
Memuat gambar dari internet
MagicTextIcon.network(
"MagicTextIcon",
url: "https://cdn-icons-png.flaticon.com/128/415/415733.png",
side: MagicTextIconSide.left,
spaces: 8,
width: 16,
height: 16,
textStyle: MagicFactory.magicTextStyle,
horizontalAlignment: MainAxisAlignment.start,
verticalAlignment: CrossAxisAlignment.start,
)
icon
Memuat gambar dari IconData
MagicTextIcon.icon(
"MagicTextIcon",
icon: Icons.apple,
side: MagicTextIconSide.left,
spaces: 8,
size: 16,
textStyle: MagicFactory.magicTextStyle,
horizontalAlignment: MainAxisAlignment.start,
verticalAlignment: CrossAxisAlignment.start,
),
Properti yang dapat digunakan
Nama | Tipe | Tersedia di | Keterangan |
---|---|---|---|
asset |
String |
asset |
Memuat gambar dari aset lokal |
url |
String |
network |
Memuat gambar dari internet |
icon |
IconData |
icon |
Memuat gambar dari icon |
spaces |
double |
semua | Mengatur jarak antara teks dengan gambar |
size |
double |
icon |
Mengatur ukuran dari gambar |
width |
double |
asset dan network |
Mengatur lebar gambar |
height |
double |
asset dan network |
Mengatur tinggi gambar |
textStyle |
MagicTextStyle |
semua | Mengatur gaya teks |
horizontalAlignment |
MainAxisAlignment? |
semua | Mengatur perataan horisontal |
verticalAlignment |
CrossAxisAlignment? |
semua | Mengatur perataan vertikal |
color |
Color? |
semua | Mengatur warna dari gambar |
Sebuah Kustomisasi Widget Button.
MagicButton(
() {
// Do Something here
},
text: "Tekan Disini",
);
Pada MagicButton
terdapat properti textStyle
. Jika properti ini diberi nilai maka
properti textColor
, textSize
, fontWeight
dan fontFamily
akan diabaikan.
Anda juga dapat mengganti teks biasa dengan Widget yang lain dengan mendefinisikan nilai
dari child
. Contohnya di bawah ini teks biasa diganti dengan MagicTextIcon.
Namun perlu diperhatikan jika anda memberikan nilai pada child
maka properti text
, textColor
, textSize
, fontWeight
dan fontFamily
akan diabaikan.
MagicButton(
() {},
text: "Teks",
child: MagicTextIcon.network(
"MagicTextIcon with Network",
url: "https://cdn-icons-png.flaticon.com/128/415/415733.png",
side: MagicTextIconSide.left,
spaces: 8,
width: 16,
height: 16,
textStyle: MagicFactory.magicTextStyle,
horizontalAlignment: MainAxisAlignment.start,
verticalAlignment: CrossAxisAlignment.start,
),
)
Properti MagicButton yang dapat digunakan
Nama | Tipe | Keterangan |
---|---|---|
child |
Widget? |
Mengatur kustom child. Dapat diisi dengan Widget yang lain |
text |
String |
Mengatur teks. Diabaikan jika child diisi. |
textStyle |
MagicTextStyle? |
Mengatur perataan teks. Diabaikan jika child diisi. |
textColor |
Color? |
Mengatur warna teks. Diabaikan jika child atau textStyle diisi |
fontFamily |
FontFamily? |
Mengatur jenis teks. Diabaikan jika child atau textStyle diisi |
fontWeight |
FontWeight? |
Mengatur ketebalan teks. Diabaikan jika child atau textStyle diisi |
textSize |
int? |
Mengatur ukuran teks. Diabaikan jika child atau textStyle diisi |
background |
Color? |
Mengatur warna dasar dari tombol. [MagicFactory.colorBrand] merupakan nilai defaultnya |
foreground |
Color? |
Mengatur warna dari tombol. Akan terlihat jika tombol di-hover atau diklik. |
strokeColor |
Color? |
Mengatur warna garis. Diabaikan jika strokeWidth = 0. Jika strokeWidth > 0 dan strokeColor = null maka otomatis warna garis akan diambil dari [MagicFactory.colorStroke] |
strokeWidth |
double? |
mengatur ketebalan garis. Default berisi 0. |
radius |
double? |
mengatur kelengkungan setiap sisi tombol. Default berisi [MagicFactory.buttonRadius] |
padding |
EdgeInsetsGeometry? |
Mengatur padding antara tombol dengan child-nya |
Sebuah kustomisasi Widget TextField.
Semua FontFamily yang ada pada Widget ini akan mengikuti yang diatur di [MagicFactory.fontFamily]
Terdapat 4 tipe yang dapat digunakan :
default
: Pada tipe ini menampilkan [MagicTextField] tanpa border dan suffix icon
MagicTextField(
controller,
hint: "Masukkan nama",
)
password
: Pada tipe ini menampilkan [MagicTextField] yang digunakan untuk mengetik kata sandi, dengan teks dirahasiakan dan terdapatsuffixIcon
. Untuk mengatursuffixIcon
anda dapat menggunakansuffixIconEyeClose
ketika teks dirahasiakan dansuffixIconEyeOpen
ketika teks dibuka. JikasuffixIconEyeClose
dansuffixIconEyeOpen
tidak diisi maka akan ada Widget default yang mengisi.
MagicTextField.password(
controller,
hint: "Masukkan nama",
# suffixIconEyeClose: YourWidget(),
# suffixIconEyeOpen: YourWidget(),
)
border
: Pada tipe ini menampilkan [MagicTextField] dengan border. Secara default border akan diambil dari [MagicFactory.border]. Anda dapat mengkustomisasi border sendiri dengan menambahkan propertiborder
pada [MagicTextField]
MagicTextField.border(
controller,
hint: "Masukkan nama",
)
borderPassword
: Pada tipe ini menampilkan [MagicTextField] yang merupakan kombinasi antara tipeborder
dan tipepassword
MagicTextField.borderPassword(
controller,
hint: "Masukkan nama",
)
Nama | Tipe | Keterangan |
---|---|---|
type | MagicTextFieldType? | Tipe yang tersedia pada Widget MagicTextField |
controller | TextEditingController | Controller |
keyboardType | TextInputType? | Mengatur tampilan keyboard |
textInputAction | TextInputAction? | Mengatur bentuk aksi 'enter' di keyboard |
textStyle | MagicTextStyle? | Mengatur gaya teks |
readOnly | bool | Mengatur MagicTextField dapat diedit atau tidak. Secara default bernilai false |
enabled | bool? | Mengatur MagicTextField dapat diedit atau tidak. Berbeda dengan readOnly, ketika enabled bernilai true , MagicTextField akan memasuki mode disabled |
obscureText | bool | Mengatur tampilan teks, akan disembunyikan dan diganti * atau tidak. Secara default bernilai false |
cursorColor | Color? | Mengatur warna cursor |
onEditingComplete | Function()? | Menangani aksi ketika sudah selesai mengedit |
onFieldSubmitted | Function(String)? | Menangani aksi ketika sudah selesai mengetik dan menekan enter |
onChange | Function(String)? | Menangani aksi setiap ada perubahan pengetikan |
validator | String? Function(String?)? | Menangani aksi validasi |
autoValidateMode | AutovalidateMode? | Menangani aksi validasi akan dilakukan kapan |
onTap | Function()? | Menangani aksi ketika MagicTextField di-Tap |
focusNode | FocusNode? | |
textCapitalization | TextCapitalization | Memberikan hint |
hint | String? | Mengatur gaya dari hint |
hintStyle | MagicTextStyle? | Memberikan label. Jika hint dan label diisi, maka hint akan diabaikan dan label yang akan ditampilkan |
label | String? | Mengatur gaya dari label |
labelStyle | MagicTextStyle? | Mengatur Widget kustom untuk label. Jika labelCustom diisi maka label, labelStyle, dan floatingLabelStyle akan diabaikan |
labelCustom | Widget? | Mengatur perataan dari label yang mengambang |
floatingLabelAlignment | FloatingLabelAlignment? | Mengatur kemunculan label mengambang |
floatingLabelBehavior | FloatingLabelBehavior? | Mengatur gaya dari label mengambang |
floatingLabelStyle | MagicTextStyle? | Mengatur ikon |
icon | Widget? | Mengatur warna dari ikon |
iconColor | Color? | Mengatur ikon pada awalan MagicTextField |
prefixIcon | Widget? | Mengatur warna prefixIcon |
prefixIconColor | Color? | Mengatur teks pada awalan MagicTextField. Terletak antara prefixIcon dan tempat untuk mengetik. |
prefixText | String? | Mengatur gaya dari prefix |
prefixTextStyle | MagicTextStyle? | Mengatur Widget pada awalan MagicTextField. Terletak antara prefixIcon dan tempat untuk mengetik. |
prefix | Widget? | Mengatur ikon pada akhiran MagicTextField. Jika type = MagicTextFieldType.PASSWORD atau MagicTextFieldType.BORDER_PASSWORD, suffixIcon akan diabaikan |
suffixIcon | Widget? | Mengatur suffixIcon jika type = MagicTextFieldType.PASSWORD atau MagicTextFieldType.BORDER_PASSWORD dan obscureText = false |
suffixIconEyeOpen | Widget? | Mengatur suffixIcon jika type = MagicTextFieldType.PASSWORD atau MagicTextFieldType.BORDER_PASSWORD dan obscureText = true |
suffixIconEyeClose | Widget? | Mengatur warna dari suffixIcon |
suffixIconColor | Color? | Mengatur teks pada akhiran MagicTextField. Terletak antara suffixIcon dan tempat untuk mengetik. |
suffixText | String? | Mengatur gaya dari suffixText |
suffixTextStyle | MagicTextStyle? | Mengatur Widget pada awalan MagicTextField. Terletak antara suffixIcon dan tempat untuk mengetik. |
suffix | Widget? | Mengatur garis batas / border pada MagicTextField |
counterText | String? | Mengatur teks counter. Terletak pada kanan bawah MagicTextField |
counterStyle | MagicTextStyle? | Mengatur gaya teks counterText |
helperText | String? | mengatur teks helper. Terletak pada kiri bawah MagicTextField |
helperStyle | MagicTextStyle? | Mengatur gaya teks helperText |
errorText | String? | Mengatur teks error. Terletak pada kiri bawah MagicTextField. Jika helperText tidak bernilai null akan terganti dengan errorText |
errorStyle | MagicTextStyle? | Mengatur gaya teks errorText |
fillColor | Color? | Mengatur warna dari MagicTextField. Akan diabaikan jika filled bernilai null atau false |
filled | bool? | Mengatur MagicTextField berwarna atau tidak |
padding | EdgeInsetsGeometry? | Mengatur padding |
constraints | BoxConstraints? | Mengatur ukuran dari MagicTextField |
inputFormatter | List? | Mengatu format teks pada MagicTextField |
Sebuah Kustomisasi Widget Dropdown.
MagicDropDown<YourModel>(
value: yourValue,
items: yourItems,
hint: yourHint,
itemString: (data) {
/// Example : data?.name ?? ""
return yourItemString;
},
onChange: (data) {
/// Do Something
},
)
Nama | Type | Keterangan |
---|---|---|
items | List<T> | [REQUIRED] Menagtur isi dropdown |
itemString | String Function(T?) | [REQUIRED] Mengatur teks yang ditampilkan di menu |
onChange | Function(T)? | [REQUIRED] Fungsi untuk mengatur nilai setelah dipilih dari menu |
autoValidateMode | AutovalidateMode? | Menagtur jenis validasi |
border | MagicTextFieldBorder? | Mengatur garis batas / border pada [MagicTextField] |
counterStyle | MagicTextStyle? | Mengatur gaya teks [counterText] |
counterText | String? | Mengatur teks counter. Terletak pada kanan bawah [MagicTextField] |
disableHint | String? | Mengatur hint saat [MagicDropDown] disable |
disableHintStyle | MagicTextStyle? | Mengatur hint style saat [MagicDropDown] disable |
errorStyle | MagicTextStyle? | Mengatur gaya teks [errorText] |
errorText | String? | Mengatur teks error. Terletak pada kiri bawah [MagicTextField]. Jika [helperText] tidak bernilai null akan terganti dengan [errorText] |
fillColor | Color? | Mengatur warna dari [MagicTextField]. Akan diabaikan jika [filled] bernilai null atau false |
filled | bool? | Mengatur [MagicTextField] berwarna atau tidak |
floatingLabelAlignment | FloatingLabelAlignment? | Mengatur perataan dari [label] yang mengambang |
floatingLabelBehavior | FloatingLabelBehavior? | Mengatur kemunculan [label] mengambang |
floatingLabelStyle | MagicTextStyle? | Mengatur gaya dari [label] mengambang |
helperStyle | MagicTextStyle? | Mengatur gaya teks [helperText] |
helperText | String? | Mengatur teks helper. Terletak pada kiri bawah [MagicTextField] |
hint | String? | Memberikan hint |
hintStyle | MagicTextStyle? | Mengatur gaya dari [hint] |
icon | Widget? | Mengatur ikon |
iconColor | Color? | Mengatur warna dari ikon |
iconDropdown | Widget? | Mengatur ikon dropdown |
iconDropdownColorDisable | Color? | Mengatur warna ikon dropdon saat disable |
iconDropdownColorEnable | Color? | Mengatur warna ikon dropdon saat enable |
iconDropdownSize | double? | Mengatur ukuran ikon dropdown |
itemBuilder | Widget Function(String itemString, T data)? | Mengatur tampilan dari daftar menu |
itemColor | Color? | Menagtur warna dari item |
itemHeight | double? | Mengatur tinggi setiap item |
itemString | String Function(T?) | Mengatur teks yang ditampilkan di menu |
label | String? | Memberikan label. Jika [hint] dan [label] diisi, maka [hint] akan diabaikan dan [label] yang akan ditampilkan |
labelCustom | Widget? | Mengatur Widget kustom untuk label. Jika [labelCustom] diisi maka [label], [labelStyle], dan [floatingLabelStyle] akan diabaikan |
labelStyle | MagicTextStyle? | Mengatur gaya dari [label] |
maxMenuHeight | double? | Mengatur tinggi maksimal menu |
prefix | Widget? | Mengatur Widget pada awalan [MagicTextField]. Terletak antara [prefixIcon] dan tempat untuk mengetik. [prefix] akan muncul jika [prefixText] bernilai null dan [MagicTextField] dalam status fokus |
prefixIcon | Widget? | Mengatur ikon pada awalan [MagicTextField] |
prefixIconColor | Color? | Mengatur warna [prefixIcon] |
prefixText | String? | Mengatur teks pada awalan [MagicTextField]. Terletak antara [prefixIcon] dan tempat untuk mengetik. [prefixText] akan muncul jika [prefix] bernilai null dan [MagicTextField] dalam status fokus |
prefixTextStyle | MagicTextStyle? | Mengatur gaya dari [prefixText] |
suffix | Widget? | Mengatur Widget pada awalan [MagicTextField]. Terletak antara [suffixIcon] dan tempat untuk mengetik. [suffix] akan muncul jika [suffixText] bernilai null dan [MagicTextField] dalam status fokus |
suffixIcon | Widget? | Mengatur ikon pada akhiran [MagicTextField] |
suffixIconColor | Color? | Mengatur warna dari [suffixIcon] |
suffixIconEyeClose | Widget? | Mengatur [suffixIcon] jika [type] = [MagicTextFieldType.PASSWORD] atau [MagicTextFieldType.BORDER_PASSWORD] dan [obscureText] = true |
suffixIconEyeOpen | Widget? | Mengatur [suffixIcon] jika [type] = [MagicTextFieldType.PASSWORD] atau [MagicTextFieldType.BORDER_PASSWORD] dan [obscureText] = false |
suffixText | String? | Mengatur teks pada akhiran [MagicTextField]. Terletak antara [suffixIcon] dan tempat untuk mengetik. [suffixText] akan muncul jika [suffix] bernilai null dan [MagicTextField] dalam status fokus |
suffixTextStyle | MagicTextStyle? | Mengatur gaya dari [suffixText] |
value | T? | Mengatur nilai |
validator | String? Function(String? text, T? data)? | Mengatur validasi dropdown |
Sebuah Kustomisasi Widget Autocomplete.
MagicAutoComplete<ExampleModel>(
controller: controller,
list: items.map((e) => AutoCompleteData(e.name, e)).toList(),
onSelected: (value) {
setState(() {
selectedData = value;
controller.text = selectedData?.option ?? "";
});
})
Nama | Type | Keterangan |
---|---|---|
controller | TextEditingController | [REQUIRED] Controller untuk fieldViewBuilder |
list | List<AutoCompleteData> | [REQUIRED] Pilihan yang ditampilkan |
onSelected | Function(AutoCompleteData)? | [REQUIRED ] Aksi ketika pilihan tersebut dipilih |
displayStringForOption | String Function(AutoCompleteData)? | Menampilkan String pilihan yang dipilih |
fieldViewBuilder | Widget Function(BuildContext, TextEditingController, FocusNode, VoidCallback)? | Mengatur kustomisasi dari fieldViewBuilder . Jika [fieldViewBuilder] != null maka [textFieldStyle] akan diabaikan. Perlu diperhatikan jika melakukan kustomisasi, harap parameter ini disesuaikan ke dalam kustom dari tampilan anda. |
maxHeightOption | double? | Mengatur tinggi maksimal dari tampilan pilihan |
maxWidthOption | double? | Mengatur lebar maksimal dari tampilan pilihan (dikurangi 40) karena margin horizontal 20. Default MediaQuery.of(context).size.width |
optionHighlightTextStyle | MagicTextStyle? | Mengatur gaya teks dari highlight default optionsViewBuilder . Jika [optionHighlightTextStyle] berisi null maka gaya teks akan disesuaikan secara default |
optionTextStyle | MagicTextStyle? | Mengatur gaya teks dari default optionsViewBuilder . Jika [optionTextStyle] berisi null maka gaya teks akan disesuaikan secara default |
optionsBuilder | FutureOr<Iterable<AutoCompleteData>> Function(TextEditingValue)? | Kustomisasi Options Builder. Secara default jika teks di fieldViewBuilder kosong maka akan menampilkan seluruh [list]. Jika ada isinya maka [list] akan difilter berdasarkan [AutoCompleteData.option] yang mengandung teks di fieldViewBuilder |
optionsViewBuilder | Widget Function(BuildContext, Function(AutoCompleteData), Iterable<AutoCompleteData>)? | Mengatur kustomisasi tampilan pilihan. Jika [optionsViewBuilder] != null maka [maxWidthOption] dan [maxHeightOption] diabaikan |
textFieldStyle | MagicTextFieldStyle? | Mengatur gaya dari fieldViewBuilder . [MagicTextFieldStyle] berisi seluruh gaya yang dapat diterapkan pada [MagicTextField] |
Sebuah widget untuk menampilkan dialog.
Secara mudah anda dapat menampilkan dialog yang sesuai dengan keinginan anda dengan menggunakan [MagicDialog].
showMagicDialog(
context,
child: YOUR_WIDGET
);
Nama | Tipe | Keterangan |
---|---|---|
context | BuildContext | [REQUIRED] |
child | Widget | [REQUIRED] Widget konten atau isi dari dialog |
barrierDismissable | bool | Digunakan untuk menutup dialog jika menekan di bagian area luar dialog. Secara default bernilai true |
background | Color? | Warna background dari dialog |
maxHeight | double? | Mengatur maksimal tinggi dari dialog. Secara default bernilai sesuai dengan tinggi perangkat - 100 |
cornerRadius | double? | Mengatur radius sudut dialog |
elevation | double? | Mengatur elevation |
padding | double? | Mengatur padding |
Selain fungsi showMagicDialog
anda dapat menggunakan fungsi showMagicAlertDialog
yang akan menampilkan dialog informatif yang berisi ikon, judul, kontan, tombol utama dan tombol sekunder.
showMagicAlertDialog(
context,
title: "YOUR TITLE",
content: "YOUR KONTEN.",
iconType: EnumDialogIconType.failed,
barrierDismissable: true,
textPrimary: "Ulangi",
onPrimary: (){
},
background: Colors.black,
);
Nama | Tipe | Keterangan |
---|---|---|
content | String? | [REQUIRED] Teks untuk isi dialog |
contentStyle | MagicTextStyle? | Style Teks untuk konten |
iconType | EnumDialogIconType? | Mode icon. Diambil dari EnumDialogIconType yang berisi none, success, failed, warning, custom. Secara default bernilai EnumDialogIconType.none |
icon | Widget? | Jika iconType bernilai EnumDialogIconType.custom, anda dapat mengisi icon disini |
title | String? | Teks untuk judul |
titleStyle | MagicTextStyle? | Style teks untuk judul |
barrierDismissable | bool | Digunakan untuk menutup dialog jika menekan di bagian area luar dialog. Secara default bernilai true |
textPrimary | String? | Teks untuk tombol primary |
onPrimary | Function()? | Aksi untuk tombol primary |
colorPrimary | Color? | Warna untuk tombol primary |
textColorPrimary | Color? | Warna teks untuk tombol primary |
textSizePrimary | double? | Ukuran teks untuk tombol primary |
textSecondary | String? | Teks untuk tombol sekunder |
onSecondary | Function()? | Aksi untuk tombol sekunder |
colorSecondary | Color? | Warna tombol sekunder |
textColorSecondary | Color? | Warna teks untuk tombol sekunder |
textSizeSecondary | double? | Ukuran teks untuk tombol sekunder |
background | Color? | Warna background dialog |
borderColor | Color? | Warna batas dialog |
borderWidth | double | Ketebalan batas dialog. Secara default bernilai 2 |
Mengatur Widget Reponsive Layout
MagicLayout(
largeScreen: GridView.builder(
gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(
crossAxisCount: 5, childAspectRatio: 5.0),
itemBuilder: (context, index) {
return widgets[index];
},
shrinkWrap: true,
itemCount: widgets.length,
),
mediumScreen: GridView.builder(
gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(
crossAxisCount: 3, childAspectRatio: 5.0),
itemBuilder: (context, index) {
return widgets[index];
},
shrinkWrap: true,
itemCount: widgets.length,
),
smallScreen: GridView.builder(
gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(
crossAxisCount: 1, childAspectRatio: 5.0),
itemBuilder: (context, index) {
return widgets[index];
},
shrinkWrap: true,
itemCount: widgets.length,
),
);