我正在构建一个壁纸应用程序,并希望实现切换视图的功能,例如在 FLutter 中按下IconButton
时从GridView
切换到ListView
看起来像这样:
我能想到的实现此功能的唯一方法是通过将计数器挂接到crossAxisCount
属性并通过单击IconButton
的函数控制它来更改GridView.count()
方法中的crossAxisCount
值,这有效,但我必须在每次计数器增加或减少时热重载我的应用程序,
欢迎对此问题提出任何建议或修复。
您可以简单地使用三元运算符和setState()
来实现您想要的。 首先,在widget build
上方声明一个布尔值。然后,您可以使用三元运算符将其从网格视图更改为列表视图。
bool isGridView=true;
@override
Widget build(BuildContext context) {
Scaffold(
body: isGridView ? GridView.builder():ListView.builder(),
);
}
在你的onPressed((中,你可以调用setState()
:
setState(() {
isGridView=false;
});