caesar-transfer/docs/flutterdocs/pages_receive_screen/ReceiveScreenState/build.html

239 lines
8.5 KiB
HTML

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, height=device-height, initial-scale=1, user-scalable=no">
<meta name="description" content="API docs for the build method from the ReceiveScreenState class, for the Dart programming language.">
<title>build method - ReceiveScreenState class - receive_screen library - Dart API</title>
<link rel="preconnect" href="https://fonts.gstatic.com">
<link href="https://fonts.googleapis.com/css2?family=Roboto+Mono:ital,wght@0,300;0,400;0,500;0,700;1,400&display=swap" rel="stylesheet">
<link href="https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@24,400,0,0" rel="stylesheet">
<link rel="stylesheet" href="../../static-assets/github.css?v1">
<link rel="stylesheet" href="../../static-assets/styles.css?v1">
<link rel="icon" href="../../static-assets/favicon.png?v1">
</head>
<body data-base-href="../../" data-using-base-href="false" class="light-theme">
<div id="overlay-under-drawer"></div>
<header id="title">
<span id="sidenav-left-toggle" class="material-symbols-outlined" role="button" tabindex="0">menu</span>
<ol class="breadcrumbs gt-separated dark hidden-xs">
<li><a href="../../index.html">flutter_test_gui</a></li>
<li><a href="../../pages_receive_screen/pages_receive_screen-library.html">pages&#47;receive_screen.dart</a></li>
<li><a href="../../pages_receive_screen/ReceiveScreenState-class.html">ReceiveScreenState</a></li>
<li class="self-crumb">build method</li>
</ol>
<div class="self-name">build</div>
<form class="search navbar-right" role="search">
<input type="text" id="search-box" autocomplete="off" disabled class="form-control typeahead" placeholder="Loading search...">
</form>
<div class="toggle" id="theme-button" title="Toggle brightness">
<label for="theme">
<input type="checkbox" id="theme" value="light-theme">
<span id="dark-theme-button" class="material-symbols-outlined">
dark_mode
</span>
<span id="light-theme-button" class="material-symbols-outlined">
light_mode
</span>
</label>
</div>
</header>
<main>
<div
id="dartdoc-main-content"
class="main-content"
data-above-sidebar="pages_receive_screen&#47;ReceiveScreenState-class-sidebar.html"
data-below-sidebar="">
<div>
<h1><span class="kind-method">build</span> method
</h1></div>
<section class="multi-line-signature">
<div>
<ol class="annotation-list">
<li>@<a href="https://api.flutter.dev/flutter/dart-core/override-constant.html">override</a></li>
</ol>
</div>
<span class="returntype"><a href="https://api.flutter.dev/flutter/widgets/Widget-class.html">Widget</a></span>
<span class="name ">build</span>(<wbr><ol class="parameter-list"><li><span class="parameter" id="build-param-context"><span class="type-annotation"><a href="https://api.flutter.dev/flutter/widgets/BuildContext-class.html">BuildContext</a></span> <span class="parameter-name">context</span></span></li>
</ol>)
<div class="features"><span class="feature">override</span></div>
</section>
<section class="desc markdown">
<p>Builds the scaffold for the receive screen.</p>
<p>The scaffold contains a center widget that contains a column of widgets.
The column contains a QR code scanner if <code>_showScanner</code> is true, otherwise
it contains a text field for entering the transfer name. Below the text
field is an elevated button for initiating the receive process.</p>
</section>
<section class="summary source-code" id="source">
<h2><span>Implementation</span></h2>
<pre class="language-dart"><code class="language-dart">@override
Widget build(BuildContext context) {
return Scaffold(
backgroundColor: Constants.backColor,
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
&#47;&#47; If _showScanner is false, display a QR code icon that can be tapped
&#47;&#47; to start the QR code scanner.
if (!_showScanner)
GestureDetector(
onTap: () {
if (Platform.isIOS || Platform.isAndroid) {
setState(() {
_showScanner = true;
});
}
},
child: Container(
width: 200,
height: 200,
decoration: const BoxDecoration(
shape: BoxShape.circle,
color: Constants.textColor,
),
child: const Center(
child: Icon(
Icons.qr_code,
color: Constants.highlightColor,
size: 100,
),
),
),
),
&#47;&#47; If _showScanner is true, display the QR code scanner.
if (_showScanner)
Container(
width: MediaQuery.of(context).size.width * 0.8,
height: MediaQuery.of(context).size.height * 0.5,
decoration: BoxDecoration(
color: Colors.white,
borderRadius: BorderRadius.circular(16),
),
child: _buildQRScanner(),
),
&#47;&#47; Add some spacing between the scanner and the text field.
const SizedBox(height: 32),
&#47;&#47; Display a text field for entering the transfer name.
Padding(
padding: const EdgeInsets.symmetric(horizontal: 16),
child: SizedBox(
width: MediaQuery.of(context).size.width * 0.5,
child: TextField(
controller: myController,
textAlign: TextAlign.center,
style: const TextStyle(
color: Constants.highlightColor,
),
onChanged: (value) {
setState(() {
inputValue = value;
});
},
decoration: const InputDecoration(
labelText: &#39;Enter Transfername&#39;,
alignLabelWithHint: true,
floatingLabelAlignment: FloatingLabelAlignment.center,
labelStyle: TextStyle(color: Constants.textColor),
enabledBorder: UnderlineInputBorder(
borderSide: BorderSide(color: Constants.textColor),
),
focusedBorder: UnderlineInputBorder(
borderSide: BorderSide(color: Constants.textColor),
),
),
),
),
),
&#47;&#47; Add some spacing between the text field and the receive button.
const SizedBox(height: 16),
&#47;&#47; Display an elevated button for initiating the receive process.
ElevatedButton(
style: ElevatedButton.styleFrom(
backgroundColor: Constants.textColor,
foregroundColor: Constants.backColor,
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(20),
),
),
onPressed: () {
loadSettings().then((_) =&gt; _startTransfer(appOrigin));
},
child: const Text(&#39;Receive&#39;),
),
],
)),
);
}</code></pre>
</section>
</div> <!-- /.main-content -->
<div id="dartdoc-sidebar-left" class="sidebar sidebar-offcanvas-left">
<!-- The search input and breadcrumbs below are only responsively visible at low resolutions. -->
<header id="header-search-sidebar" class="hidden-l">
<form class="search-sidebar" role="search">
<input type="text" id="search-sidebar" autocomplete="off" disabled class="form-control typeahead" placeholder="Loading search...">
</form>
</header>
<ol class="breadcrumbs gt-separated dark hidden-l" id="sidebar-nav">
<li><a href="../../index.html">flutter_test_gui</a></li>
<li><a href="../../pages_receive_screen/pages_receive_screen-library.html">receive_screen</a></li>
<li><a href="../../pages_receive_screen/ReceiveScreenState-class.html">ReceiveScreenState</a></li>
<li class="self-crumb">build method</li>
</ol>
<h5>ReceiveScreenState class</h5>
<div id="dartdoc-sidebar-left-content"></div>
</div><!--/.sidebar-offcanvas-->
<div id="dartdoc-sidebar-right" class="sidebar sidebar-offcanvas-right">
</div><!--/.sidebar-offcanvas-->
</main>
<footer>
<span class="no-break">
flutter_test_gui
1.0.0+1
</span>
</footer>
<script src="../../static-assets/highlight.pack.js?v1"></script>
<script src="../../static-assets/docs.dart.js"></script>
</body>
</html>