From cda0e9e548e24cdd9f20ee3d76252575a4af3a9e Mon Sep 17 00:00:00 2001 From: Huy Pham Date: Sat, 12 Mar 2022 11:57:44 +0700 Subject: [PATCH] Avoid rebuild --- lib/ui/widget/alice_base_call_details_widget.dart | 2 +- lib/ui/widget/alice_call_error_widget.dart | 4 ++++ lib/ui/widget/alice_call_request_widget.dart | 4 ++++ lib/ui/widget/alice_call_response_widget.dart | 4 ++++ 4 files changed, 13 insertions(+), 1 deletion(-) diff --git a/lib/ui/widget/alice_base_call_details_widget.dart b/lib/ui/widget/alice_base_call_details_widget.dart index c55c97be..b45c597e 100644 --- a/lib/ui/widget/alice_base_call_details_widget.dart +++ b/lib/ui/widget/alice_base_call_details_widget.dart @@ -6,7 +6,7 @@ import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; abstract class AliceBaseCallDetailsWidgetState - extends State { + extends State with AutomaticKeepAliveClientMixin { final JsonEncoder encoder = const JsonEncoder.withIndent(' '); Widget getListRow(String name, String value) { diff --git a/lib/ui/widget/alice_call_error_widget.dart b/lib/ui/widget/alice_call_error_widget.dart index 4137f9a3..02d1dc46 100644 --- a/lib/ui/widget/alice_call_error_widget.dart +++ b/lib/ui/widget/alice_call_error_widget.dart @@ -19,6 +19,7 @@ class _AliceCallErrorWidgetState @override Widget build(BuildContext context) { + super.build(context); if (_call.error != null) { final List rows = []; final dynamic error = _call.error!.error; @@ -36,4 +37,7 @@ class _AliceCallErrorWidgetState return const Center(child: Text("Nothing to display here")); } } + + @override + bool get wantKeepAlive => true; } diff --git a/lib/ui/widget/alice_call_request_widget.dart b/lib/ui/widget/alice_call_request_widget.dart index 56aba597..57c59940 100644 --- a/lib/ui/widget/alice_call_request_widget.dart +++ b/lib/ui/widget/alice_call_request_widget.dart @@ -19,6 +19,7 @@ class _AliceCallRequestWidget @override Widget build(BuildContext context) { + super.build(context); final List rows = []; rows.add(getListRow("Started:", _call.request!.time.toString())); rows.add(getListRow("Bytes sent:", formatBytes(_call.request!.size))); @@ -80,4 +81,7 @@ class _AliceCallRequestWidget child: ListView(children: rows), ); } + + @override + bool get wantKeepAlive => true; } diff --git a/lib/ui/widget/alice_call_response_widget.dart b/lib/ui/widget/alice_call_response_widget.dart index 7bb3bf51..d8f2bcf3 100644 --- a/lib/ui/widget/alice_call_response_widget.dart +++ b/lib/ui/widget/alice_call_response_widget.dart @@ -32,6 +32,7 @@ class _AliceCallResponseWidgetState @override Widget build(BuildContext context) { + super.build(context); final List rows = []; if (!_call.loading) { rows.addAll(_buildGeneralDataRows()); @@ -301,4 +302,7 @@ class _AliceCallResponseWidgetState return _call.response!.body != null && _call.response!.body.toString().length > _kLargeOutputSize; } + + @override + bool get wantKeepAlive => true; }