Flutter 在flatter中有条件地显示/隐藏瓷砖中的复选框
我有一个从API调用动态生成的平铺列表。我在AppBar中有一个共享按钮,单击该按钮时,我希望使复选框在列表平铺中显示为尾部属性。例如:Flutter 在flatter中有条件地显示/隐藏瓷砖中的复选框,flutter,dart,flutter-layout,Flutter,Dart,Flutter Layout,我有一个从API调用动态生成的平铺列表。我在AppBar中有一个共享按钮,单击该按钮时,我希望使复选框在列表平铺中显示为尾部属性。例如: ListTile( title: Text('fetchedData.title'), trailing: Checkbox() ) 我的方法是有条件地渲染瓷砖,但我不确定我是否在正确的位置进行渲染。我使用一个布尔状态来确定复选框是否应该显示在磁贴旁边 我还尝试了创建帮助函数来为我构建列表平铺,但不确定它应该返回什么,如果您有关于如何创建这些排序函数
ListTile(
title: Text('fetchedData.title'),
trailing: Checkbox()
)
我的方法是有条件地渲染瓷砖,但我不确定我是否在正确的位置进行渲染。我使用一个布尔状态来确定复选框是否应该显示在磁贴旁边
我还尝试了创建帮助函数来为我构建列表平铺,但不确定它应该返回什么,如果您有关于如何创建这些排序函数的任何提示,请包括这一点
这是我的代码:
body: Center(
child: FutureBuilder(
future: pdfSnippets(),
builder: (BuildContext context, AsyncSnapshot<List> snapshot) {
if (snapshot.hasData) {
return ListView.builder(
// will have to hide the eccess snippet with overflow
// and have a max width to fit the trailing checkbox
itemCount: snippets.length,
itemBuilder: (BuildContext context, int index) {
// if you don't like card view, remove Card and just return ListTile
return checkboxStatus ?
Card (
child: ListTile(
// not referencing properly
title: Text('${snapshot[index].body}'),
subtitle: Text('${snapshot[index].title}'),
trailing: Checkbox(
value: false,
)
)
) :
Card (
child: ListTile(
// not referencing properly
title: Text('${snapshot[index].body}'),
subtitle: Text('${snapshot[index].title}'),
onLongPress: () => setCheckboxStatus(),
)
);
}
);
} else {
throw('nothing to see here');
}
},
),
),
主体:中心(
孩子:未来建设者(
未来:pdfSnippets(),
生成器:(BuildContext上下文,异步快照){
if(snapshot.hasData){
返回ListView.builder(
//必须用溢出隐藏ECESS代码段
//并有一个最大宽度以适合尾随复选框
itemCount:snippets.length,
itemBuilder:(构建上下文,int索引){
//如果您不喜欢卡片视图,请删除卡片并返回ListTile
返回checkboxStatus?
卡片(
孩子:ListTile(
//未正确引用
标题:文本(“${snapshot[index].body}”),
字幕:文本(“${snapshot[index].title}”),
尾随:复选框(
值:false,
)
)
) :
信用卡(
孩子:ListTile(
//未正确引用
标题:文本(“${snapshot[index].body}”),
字幕:文本(“${snapshot[index].title}”),
onLongPress:()=>setCheckboxStatus(),
)
);
}
);
}否则{
扔(“这里没什么可看的”);
}
},
),
),
您可以将复选框设置为如下条件,以使代码看起来更简单:
ListTile(
// not referencing properly
title: Text('body'),
subtitle: Text('title'),
trailing: checkboxStatus
? Checkbox(
value: false,
)
: null,
)