Add unique keys for widgets

This commit is contained in:
Vishnu Mohandas 2021-05-07 17:44:51 +05:30
parent 4be9424b53
commit 1447d895d1

View file

@ -35,7 +35,7 @@ class LazyLoadingGallery extends StatefulWidget {
this.tag, this.tag,
this.currentIndexStream, { this.currentIndexStream, {
Key key, Key key,
}) : super(key: key); }) : super(key: key ?? UniqueKey());
@override @override
_LazyLoadingGalleryState createState() => _LazyLoadingGalleryState(); _LazyLoadingGalleryState createState() => _LazyLoadingGalleryState();
@ -201,7 +201,7 @@ class LazyLoadingGridView extends StatefulWidget {
this.shouldRender, this.shouldRender,
this.shouldRecycle, { this.shouldRecycle, {
Key key, Key key,
}) : super(key: key ?? GlobalKey<_LazyLoadingGridViewState>()); }) : super(key: key ?? UniqueKey());
@override @override
_LazyLoadingGridViewState createState() => _LazyLoadingGridViewState(); _LazyLoadingGridViewState createState() => _LazyLoadingGridViewState();
@ -248,7 +248,7 @@ class _LazyLoadingGridViewState extends State<LazyLoadingGridView> {
Widget _getRecyclableView() { Widget _getRecyclableView() {
return VisibilityDetector( return VisibilityDetector(
key: Key(widget.tag + widget.files[0].creationTime.toString()), key: UniqueKey(),
onVisibilityChanged: (visibility) { onVisibilityChanged: (visibility) {
final shouldRender = visibility.visibleFraction > 0; final shouldRender = visibility.visibleFraction > 0;
if (mounted && shouldRender != _shouldRender) { if (mounted && shouldRender != _shouldRender) {
@ -266,7 +266,7 @@ class _LazyLoadingGridViewState extends State<LazyLoadingGridView> {
Widget _getNonRecyclableView() { Widget _getNonRecyclableView() {
if (!_shouldRender) { if (!_shouldRender) {
return VisibilityDetector( return VisibilityDetector(
key: Key(widget.tag + widget.files[0].creationTime.toString()), key: UniqueKey(),
onVisibilityChanged: (visibility) { onVisibilityChanged: (visibility) {
if (mounted && visibility.visibleFraction > 0 && !_shouldRender) { if (mounted && visibility.visibleFraction > 0 && !_shouldRender) {
setState(() { setState(() {