如何从可滚动的ListView.builder中选择和拖放项目。到应用程序的任何区域? 导入“包装:颤振/材料.省道”; void main()=>runApp(MaterialApp( 主页:OneCard SelectInanimation(), )); class oneCardSelectinAnimation扩展了StatefulWidget{ @凌驾 _OneCardSelectInImationState createState()=> _OneCardSelectInImationState(); } 类列表项{ bool isSelected=false;//是否高亮显示选择属性 T data;//用户的数据 ListItem(this.data);//用于分配数据的构造函数 } 类_OneCardSelectInImationState扩展状态{ 名单; @凌驾 void initState(){ super.initState(); 填充数据(); } void populateData(){ 列表=[]; 对于(inti=0;i
我有一个包含78项的可滚动ListView.builder。我可以轻松地滚动并选择它们。但我需要滚动并选择它们,并能够将任何项目拖动到应用程序的中心。我尝试将其拖动到列表视图,但无法再滚动。 提前谢谢你的帮助如何从可滚动的ListView.builder中选择和拖放项目。到应用程序的任何区域? 导入“包装:颤振/材料.省道”; void main()=>runApp(MaterialApp( 主页:OneCard SelectInanimation(), )); class oneCardSelectinAnimation扩展了StatefulWidget{ @凌驾 _OneCardSelectInImationState createState()=> _OneCardSelectInImationState(); } 类列表项{ bool isSelected=false;//是否高亮显示选择属性 T data;//用户的数据 ListItem(this.data);//用于分配数据的构造函数 } 类_OneCardSelectInImationState扩展状态{ 名单; @凌驾 void initState(){ super.initState(); 填充数据(); } void populateData(){ 列表=[]; 对于(inti=0;i,listview,flutter,drag-and-drop,draggable,Listview,Flutter,Drag And Drop,Draggable,我有一个包含78项的可滚动ListView.builder。我可以轻松地滚动并选择它们。但我需要滚动并选择它们,并能够将任何项目拖动到应用程序的中心。我尝试将其拖动到列表视图,但无法再滚动。 提前谢谢你的帮助 import 'package:flutter/material.dart'; void main() => runApp(MaterialApp( home: oneCardSelectinAnimation(), )); class oneCardSele
import 'package:flutter/material.dart';
void main() => runApp(MaterialApp(
home: oneCardSelectinAnimation(),
));
class oneCardSelectinAnimation extends StatefulWidget {
@override
_oneCardSelectinAnimationState createState() =>
_oneCardSelectinAnimationState();
}
class ListItem<T> {
bool isSelected = false; //Selection property to highlight or not
T data; //Data of the user
ListItem(this.data); //Constructor to assign the data
}
class _oneCardSelectinAnimationState extends State<oneCardSelectinAnimation> {
List<ListItem<String>> list;
@override
void initState() {
super.initState();
populateData();
}
void populateData() {
list = [];
for (int i = 0; i < 78; i++) list.add(ListItem<String>("item $i"));
}
int maxSelectedCards = 7;
int currentSelectedCards = 0;
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text("List Selection${currentSelectedCards}"),
),
body: Container(
height: MediaQuery.of(context).size.height * 0.3,
child: ListView.builder(
scrollDirection: Axis.horizontal,
itemCount: list.length,
itemBuilder: _getListItemTile,
),
),
);
}
Widget _getListItemTile(BuildContext context, int index) {
return GestureDetector(
onTap: () {
if (currentSelectedCards < maxSelectedCards &&
!(list[index].isSelected)) {
setState(() {
list[index].isSelected = true;
currentSelectedCards += 1;
});
}
},
onLongPress: () {
if (currentSelectedCards > 0 && list[index].isSelected) {
setState(() {
list[index].isSelected = false;
currentSelectedCards -= 1;
});
}
},
child: Container(
width: list[index].isSelected
? MediaQuery.of(context).size.width * 0.4
: MediaQuery.of(context).size.width * 0.3,
height: MediaQuery.of(context).size.height * 0.3,
margin: EdgeInsets.symmetric(vertical: 4),
color: list[index].isSelected ? Colors.white70 : Colors.white,
child: Image.asset(
"images/scroll.png",
),
),
);
}
}