问题描述
我收到了要动态显示的图像列表,每行4个项目。如果有5个itens,则该行应环绕。关键是,我需要图像允许长按以打开appBar中的编辑按钮。渴望按下时,除了编辑按钮外,还应允许多次选择其他图像。
此代码是否可以适用于此:
class cardy extends StatefulWidget {
@override
_cardyState createState() => new _cardyState();
}
class _cardyState extends State<cardy> {
var isSelected = false;
var mycolor=Colors.white;
@override
Widget build(BuildContext context) {
return new Card(
color: mycolor,child: new Column(mainAxisSize: MainAxisSize.min,children: <Widget>[
new ListTile(
selected: isSelected,leading: const Icon(Icons.info),title: new Text("Test"),subtitle: new Text("Test Desc"),trailing: new Text("3"),onLongPress: toggleSelection // what should I put here,)
]),);
}
void toggleSelection() {
setState(() {
if (isSelected) {
mycolor=Colors.white;
isSelected = false;
} else {
mycolor=Colors.grey[300];
isSelected = true;
}
});
}
}
解决方法
是的,此代码可用于;;
首先,请检查SliverGrid类。
https://api.flutter.dev/flutter/widgets/SliverGrid-class.html
这是一个(不完整的)代码片段,可以帮助您入门,但是您必须指定要使用的选项,因为这不会复制并粘贴来解决您的问题:
SliverGrid(
gridDelegate: SliverGridDelegateWithMaxCrossAxisExtent(
maxCrossAxisExtent: 200.0,mainAxisSpacing: 5,crossAxisSpacing: 3,crossAxisCount,),delegate: SliverChildBuilderDelegate(
(BuildContext context,int index) {
return Container()})),
我会注意到,如果您要使用收集的信息,即选择的图像,请务必将这些信息存储在某个地方。也就是说,您的示例切换了单个项目的选择,但是以后如何获取该信息?也就是说,如果单击3个项目然后单击“编辑”,则需要一种方法来记录已选择了3个项目。一种选择是维护列表,并在切换中添加/删除/添加。