Sorting 如何在列表视图中使用排序功能
我正在制作一个关于颤振的应用程序,其中产品列表中的价格等项目必须按递增顺序排列。在互联网上搜索后,我提出了使用compareTo和sort函数的解决方案,但不幸的是,我在sort()上出现了一个错误,即:这里的表达式的类型为void,因此无法使用。 整个正确的代码都在Github上 我要修改的代码部分是Sorting 如何在列表视图中使用排序功能,sorting,flutter,listview,Sorting,Flutter,Listview,我正在制作一个关于颤振的应用程序,其中产品列表中的价格等项目必须按递增顺序排列。在互联网上搜索后,我提出了使用compareTo和sort函数的解决方案,但不幸的是,我在sort()上出现了一个错误,即:这里的表达式的类型为void,因此无法使用。 整个正确的代码都在Github上 我要修改的代码部分是 return Container( child:ListView.separated( itemBuilder: (context, index){
return Container(
child:ListView.separated(
itemBuilder: (context, index){
return ListTile(
title:Text(products[index].name),
leading:products[index].i,
subtitle:Column(
children:<Widget>[
if (!ProductScreen.name) Text("\$${products[index].price}",
style: TextStyle(color: Colors.redAccent, fontSize: 20, fontWeight: FontWeight.w500),)
else
Text(products.sort((a,b)=>a.price.compareTo(b.price))) ,
返回容器(
子项:ListView.separated(
itemBuilder:(上下文,索引){
返回列表块(
标题:文本(产品[索引].名称),
领先:产品[索引].i,
副标题:专栏(
儿童:[
如果(!ProductScreen.name)文本(\${products[index].price}),
样式:TextStyle(颜色:Colors.redAccent,fontSize:20,fontWeight:fontWeight.w500),)
其他的
文本(products.sort((a,b)=>a.price.compareTo(b.price)),
if else条件显示在if()未排序列表中,否则价格将按升序排列请查看我根据给定示例代码创建的示例:
import 'package:flutter/material.dart';
import 'package:percent_indicator/linear_percent_indicator.dart';
void main() => runApp(MyApp());
class MyApp extends StatefulWidget {
MyApp({Key key}) : super(key: key);
@override
_MyAppState createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
body: SafeArea(child: SampleApp()),
),
);
}
}
class SampleApp extends StatefulWidget {
SampleApp({Key key}) : super(key: key);
@override
_SampleAppState createState() => _SampleAppState();
}
class _SampleAppState extends State<SampleApp> {
var products = [
Product("sample", 12),
Product("name", 50),
Product("azpc", 78),
Product("hplm", 3),
Product('ampl', 2),
];
@override
void initState() {
// TODO: implement initState
super.initState();
products.sort((a, b) => a.price.compareTo(b.price));
}
@override
Widget build(BuildContext context) {
return Container(
child: ListView.separated(
itemBuilder: (context, index) {
return Card(
child: Padding(
padding: const EdgeInsets.all(8.0),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
Text(products[index].name),
Text(products[index].price.toString()),
],
),
),
);
},
separatorBuilder: (context, int) => Divider(),
itemCount: products.length),
);
}
}
class Product {
final String name;
final double price;
Product(this.name, this.price);
}
导入“包装:颤振/材料.省道”;
导入“包:百分比指示器/线性百分比指示器.dart”;
void main()=>runApp(MyApp());
类MyApp扩展了StatefulWidget{
MyApp({Key}):超级(Key:Key);
@凌驾
_MyAppState createState()=>\u MyAppState();
}
类MyAppState扩展了状态{
@凌驾
小部件构建(构建上下文){
返回材料PP(
家:脚手架(
主体:安全区域(子项:SampleApp()),
),
);
}
}
类SampleApp扩展StatefulWidget{
SampleApp({Key}):超级(Key:Key);
@凌驾
_SampleAppState createState();
}
类_SampleAppState扩展状态{
var乘积=[
产品(“样品”,12),
产品(“名称”,50),
产品(“azpc”,78),
产品(“hplm”,3),
产品('ampl',2),
];
@凌驾
void initState(){
//TODO:实现initState
super.initState();
产品分类((a,b)=>a.price.compareTo(b.price));
}
@凌驾
小部件构建(构建上下文){
返回容器(
子项:ListView.separated(
itemBuilder:(上下文,索引){
回程卡(
孩子:填充(
填充:常数边集全部(8.0),
子:列(
crossAxisAlignment:crossAxisAlignment.start,
儿童:[
文本(产品[索引].name),
文本(产品[索引].price.toString()),
],
),
),
);
},
separatorBuilder:(context,int)=>Divider(),
itemCount:产品。长度),
);
}
}
类产品{
最后的字符串名;
最终双倍价格;
产品(此名称、此价格);
}
让我知道它是否有效。请查看我根据您给定的示例代码创建的示例:
import 'package:flutter/material.dart';
import 'package:percent_indicator/linear_percent_indicator.dart';
void main() => runApp(MyApp());
class MyApp extends StatefulWidget {
MyApp({Key key}) : super(key: key);
@override
_MyAppState createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
body: SafeArea(child: SampleApp()),
),
);
}
}
class SampleApp extends StatefulWidget {
SampleApp({Key key}) : super(key: key);
@override
_SampleAppState createState() => _SampleAppState();
}
class _SampleAppState extends State<SampleApp> {
var products = [
Product("sample", 12),
Product("name", 50),
Product("azpc", 78),
Product("hplm", 3),
Product('ampl', 2),
];
@override
void initState() {
// TODO: implement initState
super.initState();
products.sort((a, b) => a.price.compareTo(b.price));
}
@override
Widget build(BuildContext context) {
return Container(
child: ListView.separated(
itemBuilder: (context, index) {
return Card(
child: Padding(
padding: const EdgeInsets.all(8.0),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
Text(products[index].name),
Text(products[index].price.toString()),
],
),
),
);
},
separatorBuilder: (context, int) => Divider(),
itemCount: products.length),
);
}
}
class Product {
final String name;
final double price;
Product(this.name, this.price);
}
导入“包装:颤振/材料.省道”;
导入“包:百分比指示器/线性百分比指示器.dart”;
void main()=>runApp(MyApp());
类MyApp扩展了StatefulWidget{
MyApp({Key}):超级(Key:Key);
@凌驾
_MyAppState createState()=>\u MyAppState();
}
类MyAppState扩展了状态{
@凌驾
小部件构建(构建上下文){
返回材料PP(
家:脚手架(
主体:安全区域(子项:SampleApp()),
),
);
}
}
类SampleApp扩展StatefulWidget{
SampleApp({Key}):超级(Key:Key);
@凌驾
_SampleAppState createState();
}
类_SampleAppState扩展状态{
var乘积=[
产品(“样品”,12),
产品(“名称”,50),
产品(“azpc”,78),
产品(“hplm”,3),
产品('ampl',2),
];
@凌驾
void initState(){
//TODO:实现initState
super.initState();
产品分类((a,b)=>a.price.compareTo(b.price));
}
@凌驾
小部件构建(构建上下文){
返回容器(
子项:ListView.separated(
itemBuilder:(上下文,索引){
回程卡(
孩子:填充(
填充:常数边集全部(8.0),
子:列(
crossAxisAlignment:crossAxisAlignment.start,
儿童:[
文本(产品[索引].name),
文本(产品[索引].price.toString()),
],
),
),
);
},
separatorBuilder:(context,int)=>Divider(),
itemCount:产品。长度),
);
}
}
类产品{
最后的字符串名;
最终双倍价格;
产品(此名称、此价格);
}
让我知道它是否有效。只要做一个升级投票,它就可以完成,对其他人也有帮助。只要做一个升级投票,它就可以完成,对其他人也有帮助。