在当今快速不断变化的应用程序开发世界中,使用户友好且有效的接口至关重要。颤动的自动完成小部件是有可能改善用户体验的小部件之一。这种动态功能使输入和检索数据更加容易,同时增强用户参与。这篇文章将探索Flutter的自动完整小部件,并展示如何改善用户如何体验您的应用程序。
自动完成的小部件是Flutter库提供的功能强大的小部件,它使用户能够通过提供预测性建议有效地输入数据。这种功能大大减少了用户的努力并增强了他们的体验。电子商务应用程序中有一些用例,在搜索产品,旅行和预订应用程序时,用户可以在其中获得实时建议,以向用户提供建议。
如何使用自动完成的小部件
在您的脚手架主体中,我们创建了自动完成的小部件,并提供所需的 optionsBuilder 参数,该参数用于提供当焦点集中时应显示的建议列表。自动完成的小部件侵入一个扩展对象的T型T,因此应使用可以是int,string甚至自定义对象的类型创建。
自动完成小部件的剥离代码看起来像
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Autocomplete'),
),
body: Padding(
padding: const EdgeInsets.all(18.0),
child: Center(
child: Autocomplete<int>(
optionsBuilder: (val){
return [1,2,3,4,5];
},
)
),
)
);
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Autocomplete'),
),
body: Padding(
padding: const EdgeInsets.all(18.0),
child: Center(
child: Autocomplete<String>(
optionsBuilder: (val){
return ['Cat', 'Dog', 'Fish', 'Goat', 'Sheep'];
},
)
),
)
);
}
上面的实施一旦焦点就显示了建议,但这不是我们要实现的目标。还有其他参数可以为我们提供自定义,并允许我们根据需要调整小部件。
首先,我们可以自定义小部件,仅一旦用户开始键入并仅根据用户输入显示相关选项
才显示该选项。
class Home extends StatelessWidget {
List<String> animals = ['Cat', 'Dog', 'Fish', 'Goat', 'Sheep'];
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Autocomplete'),
),
body: Padding(
padding: const EdgeInsets.all(18.0),
child: Center(
child: Autocomplete<String>(
optionsBuilder: (val){
if(val.text.isEmpty){
return [];
}
return animals.where((animal){
return animal.toLowerCase().contains(val.text);
});
},
)
),
)
);
}
}
自定义选项
使用 optionsViewBuilder 参数,我们可以自定义提出建议的方式以适合我们的应用程序的设计。
Autocomplete<String>(
optionsBuilder: (val){
if(val.text.isEmpty){
return [];
}
return animals.where((animal){
return animal.toLowerCase().contains(val.text.toLowerCase());
});
},
optionsViewBuilder: (context,onSelected, options){
return ListView.builder(
itemCount: options.length,
itemBuilder: (context,index){
String x = options.elementAt(index);
return Card(child: ListTile(
onTap: () => onSelected(x),
title: Text(x, style: TextStyle(color: Colors.blue))));
},
);
},
)
可以使用各种自定义列表来填充自动完成的小部件,甚至可以对使用的各种可能性进行各种可能性。也有各种包裹为您提供更多的自定义和灵活性,以节省您的压力。在Pub.dev
上找到它们结论
自动完成小部件作为工具,不仅可以提高效率,而且有助于用户的整体满意度。从他们的无缝实施到各个行业的潜力,自动完成的小部件都使开发人员能够创建高度互动的顶级应用程序。
有关更多信息,请查看Flutter docs for the autocomplete class