【发布时间】:2023-04-04 15:27:01
【问题描述】:
在颤振中我需要当我调用 setstate 时,它只重建一个小部件
我将 2 个孩子放在一个堆栈中,我需要当按下一个按钮时,只重建第二个。
bool popup = false;
Scaffold(
appBar: AppBar(
title: const Text('TEST'),
actions: <Widget>[
IconButton( // + BUTTON
icon: Icon(Icons.add),
onPressed: () {
setState(() {
popup = true;
});
},
),
IconButton( // - BUTTON
icon: Icon(Icons.remove),
onPressed: () {
setState(() {
popup = false;
});
),
],
),
body: SafeArea(
child: Stack(
children: <Widget>[
Container( // FIRST WIDGET
key: ValueKey(1),
child: Text("Random - "+new Random().nextInt(20).toString())
),
popup ? Center(child: Text("abc")) : Text("") , // SECOND WIDGET
],
),
),
);
我希望当我按下“+”按钮时,只会重新构建第二个小部件,但现在它将重新构建堆栈的所有内容。
谢谢大家。
【问题讨论】:
-
rebuild表示根据当前状态重建整个页面。你想达到什么目的? -
我不能通过调用父部件的 setstate 来重建一个部件吗?
-
我希望当我按下“+”按钮时,只会重建第二个小部件
-
不应该考虑尽可能减少重建。我一开始也这样做了,它只是吃时间。 Flutter 够快
标签: flutter dart flutter-layout