dart
import 'package:delivery_management/Common.dart';import 'package:file_picker/file_picker.dart';import 'package:flutter/material.dart'; import '../../Communication/UserData.dart';import '../TabPage.dart'; // 新規登録ページclass SignUpPage extends StatefulWidget { const SignUpPage({Key? key}) : super(key: key); _SignUpPageState createState() => _SignUpPageState();} class _SignUpPageState extends State<SignUpPage> { // 入力チェックに用いる一意なキー final formKeySignUp = GlobalKey<FormState>(); // 登録するユーザのカテゴリ: bool userCategoryNinushi = false; bool userCategoryHaisou = false; // メールアドレスのTextEditingController final mailController = TextEditingController(); // パスワードのTextEditingController final passwordController = TextEditingController(); // 住所のTextEditingController final addressController = TextEditingController(); Widget build(BuildContext context) { return MaterialApp( home: Scaffold( appBar: AppBar( title: const Text("新規登録"), ), body: Column(children: <Widget>[ Expanded(child: SingleChildScrollView(child: Form( key: formKeySignUp, child: Align( alignment: Alignment.topCenter, child: Card(child: ConstrainedBox( constraints: const BoxConstraints(maxWidth: 400), child: Padding( padding: const EdgeInsets.all(10.0), child: Column(children: [ //ここでRowを入れるとレイアウトが表示されない Row(children:<Widget> [ CheckboxListTile( value: userCategoryNinushi, title: const Text( 'サンプル1', style: TextStyle( fontWeight: FontWeight.bold, ), ), controlAffinity: ListTileControlAffinity.leading, onChanged: (value) { setState(() { userCategoryNinushi = value!; }); }, ), CheckboxListTile( value: userCategoryHaisou, title: const Text( 'サンプル2', style: TextStyle( fontWeight: FontWeight.bold, ), ), controlAffinity: ListTileControlAffinity.leading, onChanged: (value) { setState(() { userCategoryHaisou = value!; }); }, ), ],), TextFormField( controller: mailController, keyboardType: TextInputType.emailAddress, decoration: const InputDecoration( labelText: "メールアドレス"), validator: (value) { if (value!.isEmpty) { return '未入力です'; } return null; }, textInputAction: TextInputAction.next, ), TextFormField( controller: passwordController, keyboardType: TextInputType.visiblePassword, obscureText: isHiddenPassword, decoration: InputDecoration( labelText: "パスワード", suffixIcon: IconButton( icon: Icon(isHiddenPassword ? Icons.remove_red_eye : Icons.visibility_off), onPressed: () { setState(() { isHiddenPassword = !isHiddenPassword; }); }), ), validator: (value) { if (value!.isEmpty) { return '未入力です'; } return null; }, textInputAction: TextInputAction.next, ), TextFormField( controller: addressController, keyboardType: TextInputType.text, decoration: const InputDecoration(labelText: "住所"), validator: (value) { if (value!.isEmpty) { return '未入力です'; } return null; }, textInputAction: TextInputAction.next, ), ],), ) ),), ) ))), Padding( padding: const EdgeInsets.all(10), child: MaterialButton( padding: const EdgeInsets.all(20), color: Colors.red, onPressed: onclickRegistrationButton, child: const Text("登録"), textColor: Colors.white,) ), ]) ),); }

0 コメント