![](/img/trans.png)
[英]How to use object comparision for custom objects in dart/flutter
[英]Flutter ReorderableListView with custom object
我目前在使用 ReorderableListView 時遇到了一些困難。
我有一個 ToDoPrefabs 列表,我想要 output,因為我的列表不包含字符串而是其他內容,我在索引中遇到錯誤,對於鍵和文本。
這是錯誤:
“類型'To Prefab'不是'int'類型的子類型”
我懷疑這是關鍵。 這也是合乎邏輯的,因為 todoprefab 不是 int。 有誰知道如何在我的 ReorderableListView 中獲得另一個 int 類型的索引
這是我的 ReorderableListView
return ReorderableListView(
onReorder: _onReorder,
scrollDirection: Axis.vertical,
padding: const EdgeInsets.symmetric(vertical: 8.0),
children: [
for(final item in toDoManagerClass.todoBank)
todocardprefab(item)
]
);
todocardprefab(不是列表)
todocardprefab(var key){
return Dismissible(
key: ValueKey(key),
background: Container(color: Colors.red, alignment: Alignment.centerLeft, child: Icon(Icons.delete),),
secondaryBackground: Container(color: Colors.green, alignment: Alignment.centerRight, child: Icon(Icons.archive),),
child: Card(
child: ListTile(
//leading: Icon(Icons.check_box_outline_blank),
title: Text(toDoManagerClass.todoBank[key].toDoText),
onTap: (){},
),
),
);
}
這是簡單的列表。
class ToDoManagerClass{
List<ToDoPrefab> todoBank = [
ToDoPrefab(text: 'Homework', f: false),
ToDoPrefab(text: 'Homework1', f: false),
ToDoPrefab(text: 'Homework12', f: false),
ToDoPrefab(text: 'Homework123', f: false),
ToDoPrefab(text: 'Homework1234', f: false),
ToDoPrefab(text: 'Homework12345', f: false),
];
}
這種方法應該有效:
您的可重新排序列表視圖
return ReorderableListView(
onReorder: _onReorder,
scrollDirection: Axis.vertical,
padding: const EdgeInsets.symmetric(vertical: 8.0),
children: [
for(final item in toDoManagerClass.todoBank)
todocardprefab(item, index())
]
);
這里是 function。 每次調用都會返回一個更高的數字。
int index(){
if(i < toDoManagerClass.todoBank.length){
print(i);
i++;
}
return i-1;
}
現在您只需要使用索引而不是 todocard 中的項目
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.