Flutter联系人选择插件reactive_contact_picker的使用
Flutter联系人选择插件reactive_contact_picker的使用
reactive_contact_picker
是一个围绕 fluttercontactpicker
构建的包装器,用于与 reactive_forms
结合使用。
目前文档还在编写中。您可以查看示例文件夹以获取样例代码。
示例代码
import 'package:flutter/material.dart';
import 'package:reactive_contact_picker/reactive_contact_picker.dart';
import 'package:reactive_forms/reactive_forms.dart';
void main() {
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({super.key});
// 构建表单
FormGroup buildForm() => fb.group({
'input': FormControl<PhoneContact>(), // 控制器用于输入联系人信息
'fullContact': FormControl<FullContact>(), // 控制器用于输入完整的联系人信息
});
[@override](/user/override)
Widget build(BuildContext context) {
return MaterialApp(
theme: ThemeData(primarySwatch: Colors.blue), // 设置主题颜色
home: Scaffold(
appBar: AppBar(), // 应用栏
body: SafeArea( // 安全区域
child: SingleChildScrollView(
physics: const BouncingScrollPhysics(), // 滚动效果
padding: const EdgeInsets.symmetric(
horizontal: 20.0,
vertical: 20.0,
), // 内边距
child: ReactiveFormBuilder(
form: buildForm, // 表单构建器
builder: (context, form, child) {
return Column(
children: [
const SizedBox(height: 16), // 空间间隔
ReactivePhoneContactPicker<PhoneContact>(
formControlName: 'input', // 控制器名称
contactBuilder: (contact) { // 联系人构建器
if (contact == null) {
return const SizedBox(
width: double.infinity,
height: 60,
child: Center(
child: Text('tap to select contact'), // 提示文本
),
);
}
return Column(
children: <Widget>[
const Text("Phone contact:"), // 联系人类型
Text("Name: ${contact.fullName}"), // 联系人姓名
Text(
"Phone: ${contact.phoneNumber!.number} (${contact.phoneNumber!.label})") // 联系人电话
],
);
},
),
const SizedBox(height: 16), // 空间间隔
ElevatedButton(
child: const Text('Sign Up'), // 按钮文本
onPressed: () {
if (form.valid) {
debugPrint(form.value.toString()); // 打印表单值
} else {
form.markAllAsTouched(); // 标记所有字段为已触碰
}
},
),
],
);
},
),
),
),
),
);
}
}
更多关于Flutter联系人选择插件reactive_contact_picker的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html
1 回复