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