Flutter如何呈现窗口小部件已在此处详细说明。 它将新旧控件进行比较。 因此,Flutter通常在大多数情况下都知道如何重新呈现UI。
在嵌套的对象结构中,更改子项时,所有父级窗口小部件都会不可避免地发生变化,因此它们似乎是新的。
这会给应用程序用户带来不吸引人的视觉效果。
是否有一种方法可以仅重新渲染其中调用SetState()的窗口小部件?
我尝试了多种this.setState((){})。 我已经换掉了无状态类中的小部件。
不幸的是,两种方法都不能解决问题。
小部件_createCheckbox(int dataArrayPosition,int elementCurrentPosition,int inputCurrentPosition){ 输入inputElement = contextData.data [dataArrayPosition] .element [elementCurrentPosition] .input [inputCurrentPosition];
name
}
有人知道在调用onChanged时仅重新呈现“受影响的”窗口小部件的方法吗?
答案 0 :(得分:0)
Flutter软件包“ Image_Picker”将照片另存为“文件”类型的变量。 我已将foto转换为jSON构造。照片已保存为BASE64。 可以在窗口小部件中显示Base64构造。 不幸的是,当您使用BASE64映像时,Flutter似乎在渲染时始终不会看到相同的映像。 因此,如果用户输入新数据,则会出现闪烁效果。
这种代码可以正常工作。
var picturesTaken = <File>[];
Widget _showFoto(int currentFoto) {
return Padding(
padding: const EdgeInsets.only(bottom: 10.0),
child: Container(
child: Padding(
padding: const EdgeInsets.all(20.0),
child: Center(
child: Column(
children: <Widget>[
Image.file(picturesTaken[currentFoto])
],
),
),
),
)
);
}