Advertisement
hendroprwk08

Untitled

Dec 11th, 2024 (edited)
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Dart 4.33 KB | None | 0 0
  1. import 'dart:io' show Platform;
  2. import 'package:flutter/material.dart';
  3. import 'package:flutter/cupertino.dart';
  4.  
  5. void main() => runApp(const MyApp());
  6.  
  7. class MyApp extends StatelessWidget {
  8.   const MyApp({super.key});
  9.  
  10.   @override
  11.   Widget build(BuildContext context) {
  12.     return MaterialApp(
  13.       debugShowCheckedModeBanner: false,
  14.       title: 'Flutter Demo',
  15.       theme: ThemeData(
  16.         colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple),
  17.         useMaterial3: true,
  18.       ),
  19.       home: const MyHomePage(title: 'Flutter Platform'),
  20.     );
  21.   }
  22. }
  23.  
  24. class MyHomePage extends StatefulWidget {
  25.   const MyHomePage({super.key, required this.title});
  26.   final String title;
  27.  
  28.   @override
  29.   State<MyHomePage> createState() => _MyHomePageState();
  30. }
  31.  
  32. class _MyHomePageState extends State<MyHomePage> {
  33.   late String nama;
  34.  
  35.   @override
  36.   Widget build(BuildContext context) {
  37.     return Scaffold(
  38.         appBar: Platform.isIOS
  39.             ? CupertinoNavigationBar(
  40.                 middle: Text(widget.title),
  41.               )
  42.             : AppBar(
  43.                 backgroundColor: Colors.cyan,
  44.                 title: Text(
  45.                   widget.title,
  46.                   style: const TextStyle(color: Colors.white),
  47.                 ),
  48.               ),
  49.         body: Padding(
  50.           padding: const EdgeInsets.all(10),
  51.           child: Column(
  52.             children: [
  53.               Platform.isIOS
  54.                   ? CupertinoTextField(
  55.                       placeholder: 'Nama Lengkap',
  56.                       placeholderStyle:
  57.                           const TextStyle(color: CupertinoColors.inactiveGray),
  58.                       prefix: const Icon(CupertinoIcons.person),
  59.                       prefixMode: OverlayVisibilityMode.always,
  60.                       padding: const EdgeInsets.symmetric(horizontal: 16.0),
  61.                       onChanged: (value) => {
  62.                         nama = value
  63.                       },
  64.                     )
  65.                   : TextFormField(
  66.                       decoration: const InputDecoration(
  67.                         icon: Icon(Icons.person),
  68.                         hintText: 'Siapa namamu?',
  69.                         labelText: 'Nama Lengkap',
  70.                       ),
  71.                       onChanged: (value) => {
  72.                         nama = value
  73.                       },
  74.                     ),
  75.               const SizedBox(height: 20.0),
  76.               Platform.isIOS
  77.                   ? CupertinoButton.filled(
  78.                       child: const Text('Simpan'),
  79.                       onPressed: () {
  80.                         showPlatformDialog(nama);
  81.                       })
  82.                   : ElevatedButton(
  83.                       child: const Text('Simpan'),
  84.                       onPressed: () {
  85.                         showPlatformDialog(nama);
  86.                       },
  87.                     )
  88.             ],
  89.           ),
  90.         ));
  91.   }
  92.  
  93.   Future showPlatformDialog(String nama) async {
  94.     if (Platform.isIOS) {
  95.       showCupertinoDialog(
  96.           context: context,
  97.           builder: (context) {
  98.             return CupertinoAlertDialog(
  99.               title: const Text('Namaku'),
  100.               content: Text(nama),
  101.               actions: [
  102.                 CupertinoDialogAction(
  103.                   onPressed: () {
  104.                     Navigator.pop(context);
  105.                   },
  106.                   child: const Text('Batal'),
  107.                 ),
  108.                 CupertinoDialogAction(
  109.                   onPressed: () {
  110.                     Navigator.pop(context);
  111.                   },
  112.                   child: const Text('OK'),
  113.                 ),
  114.               ],
  115.             );
  116.           }
  117.       );
  118.     } else {
  119.       showDialog(
  120.         context: context,
  121.         builder: (context) {
  122.           return AlertDialog(
  123.             title: const Text('Namaku'),
  124.             content: Text(nama),
  125.             actions: [
  126.               TextButton(
  127.                 onPressed: () {
  128.                   Navigator.pop(context);
  129.                 },
  130.                 child: const Text('Batal'),
  131.               ),
  132.               TextButton(
  133.                 onPressed: () {
  134.                   Navigator.pop(context);
  135.                 },
  136.                 child: const Text('OK'),
  137.               ),
  138.             ],
  139.           );
  140.         },
  141.       );
  142.     }
  143.   }
  144. }
  145.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement