255 lines
11 KiB
HTML
Executable File
255 lines
11 KiB
HTML
Executable File
<!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, initial-scale=1">
|
|
<meta name="description" content="API docs for the build method from the Sensor class, for the Dart programming language.">
|
|
<title>build method - Sensor class - uiComponents library - Dart API</title>
|
|
<!-- required because all the links are pseudo-absolute -->
|
|
<base href="../..">
|
|
|
|
<link href="https://fonts.googleapis.com/css?family=Source+Code+Pro:500,400i,400,300|Source+Sans+Pro:400,300,700" rel="stylesheet">
|
|
<link rel="stylesheet" href="static-assets/github.css">
|
|
<link rel="stylesheet" href="static-assets/styles.css">
|
|
<link rel="icon" href="static-assets/favicon.png">
|
|
|
|
</head>
|
|
|
|
<body>
|
|
|
|
<div id="overlay-under-drawer"></div>
|
|
|
|
<header id="title">
|
|
<button id="sidenav-left-toggle" type="button"> </button>
|
|
<ol class="breadcrumbs gt-separated dark hidden-xs">
|
|
<li><a href="index.html">touch_demonstrator</a></li>
|
|
<li><a href="ui_home_uiComponents/ui_home_uiComponents-library.html">uiComponents</a></li>
|
|
<li><a href="ui_home_uiComponents/Sensor-class.html">Sensor</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>
|
|
</header>
|
|
|
|
<main>
|
|
|
|
<div class="col-xs-6 col-sm-3 col-md-2 sidebar sidebar-offcanvas-left">
|
|
<h5>Sensor class</h5>
|
|
<ol>
|
|
<li class="section-title"><a href="ui_home_uiComponents/Sensor-class.html#constructors">Constructors</a></li>
|
|
<li><a href="ui_home_uiComponents/Sensor/Sensor.html">Sensor</a></li>
|
|
|
|
<li class="section-title inherited">
|
|
<a href="ui_home_uiComponents/Sensor-class.html#instance-properties">Properties</a>
|
|
</li>
|
|
<li class="inherited"><a href="ui_home_uiComponents/Sensor/hashCode.html">hashCode</a></li>
|
|
<li class="inherited"><a href="ui_home_uiComponents/Sensor/key.html">key</a></li>
|
|
<li class="inherited"><a href="ui_home_uiComponents/Sensor/runtimeType.html">runtimeType</a></li>
|
|
|
|
<li class="section-title"><a href="ui_home_uiComponents/Sensor-class.html#instance-methods">Methods</a></li>
|
|
<li><a href="ui_home_uiComponents/Sensor/build.html">build</a></li>
|
|
<li class="inherited"><a href="ui_home_uiComponents/Sensor/createElement.html">createElement</a></li>
|
|
<li class="inherited"><a href="ui_home_uiComponents/Sensor/debugDescribeChildren.html">debugDescribeChildren</a></li>
|
|
<li class="inherited"><a href="ui_home_uiComponents/Sensor/debugFillProperties.html">debugFillProperties</a></li>
|
|
<li class="inherited"><a href="ui_home_uiComponents/Sensor/noSuchMethod.html">noSuchMethod</a></li>
|
|
<li class="inherited"><a href="ui_home_uiComponents/Sensor/toDiagnosticsNode.html">toDiagnosticsNode</a></li>
|
|
<li class="inherited"><a href="ui_home_uiComponents/Sensor/toString.html">toString</a></li>
|
|
<li class="inherited"><a href="ui_home_uiComponents/Sensor/toStringDeep.html">toStringDeep</a></li>
|
|
<li class="inherited"><a href="ui_home_uiComponents/Sensor/toStringShallow.html">toStringShallow</a></li>
|
|
<li class="inherited"><a href="ui_home_uiComponents/Sensor/toStringShort.html">toStringShort</a></li>
|
|
|
|
<li class="section-title inherited"><a href="ui_home_uiComponents/Sensor-class.html#operators">Operators</a></li>
|
|
<li class="inherited"><a href="ui_home_uiComponents/Sensor/operator_equals.html">operator ==</a></li>
|
|
|
|
|
|
|
|
</ol>
|
|
</div><!--/.sidebar-offcanvas-->
|
|
|
|
<div class="col-xs-12 col-sm-9 col-md-8 main-content">
|
|
<h1>build method</h1>
|
|
|
|
<section class="multi-line-signature">
|
|
<div>
|
|
<ol class="annotation-list">
|
|
<li>@override</li>
|
|
</ol>
|
|
</div>
|
|
<span class="returntype">Widget</span>
|
|
<span class="name ">build</span>
|
|
(<wbr><span class="parameter" id="build-param-context"><span class="type-annotation">BuildContext</span> <span class="parameter-name">context</span></span>)
|
|
|
|
</section>
|
|
<section class="desc markdown">
|
|
<p>Describes the part of the user interface represented by this widget.</p>
|
|
<p>The framework calls this method when this widget is inserted into the
|
|
tree in a given <code>BuildContext</code> and when the dependencies of this widget
|
|
change (e.g., an <code>InheritedWidget</code> referenced by this widget changes).</p>
|
|
<p>The framework replaces the subtree below this widget with the widget
|
|
returned by this method, either by updating the existing subtree or by
|
|
removing the subtree and inflating a new subtree, depending on whether the
|
|
widget returned by this method can update the root of the existing
|
|
subtree, as determined by calling <code>Widget.canUpdate</code>.</p>
|
|
<p>Typically implementations return a newly created constellation of widgets
|
|
that are configured with information from this widget's constructor and
|
|
from the given <code>BuildContext</code>.</p>
|
|
<p>The given <code>BuildContext</code> contains information about the location in the
|
|
tree at which this widget is being built. For example, the context
|
|
provides the set of inherited widgets for this location in the tree. A
|
|
given widget might be built with multiple different <code>BuildContext</code>
|
|
arguments over time if the widget is moved around the tree or if the
|
|
widget is inserted into the tree in multiple places at once.</p>
|
|
<p>The implementation of this method must only depend on:</p><ul><li>the fields of the widget, which themselves must not change over time,
|
|
and</li><li>any ambient state obtained from the <code>context</code> using
|
|
<code>BuildContext.inheritFromWidgetOfExactType</code>.</li></ul>
|
|
<p>If a widget's <a href="ui_home_uiComponents/Sensor/build.html">build</a> method is to depend on anything else, use a
|
|
<code>StatefulWidget</code> instead.</p>
|
|
<p>See also:</p><ul><li>The discussion on performance considerations at <code>StatelessWidget</code>.</li></ul>
|
|
</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) {
|
|
final bBloc = BlocProvider.of(context).bluetoothBlocGetter;
|
|
final widthOfScreen = MediaQuery.of(context).size.width;
|
|
final heightOfScreen = MediaQuery.of(context).size.height;
|
|
|
|
double _heightSensor;
|
|
double _widthSensor;
|
|
print('HoS: $heightOfScreen WoS: $widthOfScreen');
|
|
if (heightOfScreen > widthOfScreen) {
|
|
print('Hochformat');
|
|
_widthSensor = widthOfScreen * 0.8;
|
|
_heightSensor = _widthSensor;
|
|
} else {
|
|
print('Querformat');
|
|
_heightSensor = heightOfScreen * 0.8;
|
|
_widthSensor = _heightSensor;
|
|
print('HS: $_heightSensor WS: $_widthSensor');
|
|
}
|
|
return Hero(
|
|
tag: 'touchpadHero',
|
|
child: Container(
|
|
decoration: BoxDecoration(
|
|
image: DecorationImage(
|
|
image: ExactAssetImage('assets/trackpad.png'), fit: BoxFit.cover),
|
|
),
|
|
margin: EdgeInsets.only(left: 10.0, right: 10.0),
|
|
height: _heightSensor,
|
|
width: _widthSensor,
|
|
child: Stack(
|
|
children: <Widget>[
|
|
StreamBuilder<List<bool>>(
|
|
stream: bBloc.getButtons$,
|
|
initialData: [false, false, false],
|
|
builder:
|
|
(BuildContext context, AsyncSnapshot<List<bool>> snapshot) {
|
|
if (snapshot.hasData) {
|
|
print('GETBUTTONS: ${snapshot.data}');
|
|
return Stack(
|
|
// draw the buttons
|
|
children: <Widget>[
|
|
(snapshot.data[0])
|
|
? Positioned(
|
|
left: 14.0,
|
|
bottom: 215.0,
|
|
child: new Icon(
|
|
Icons.fingerprint,
|
|
color: Colors.white,
|
|
size: 40.0,
|
|
),
|
|
)
|
|
: Container(),
|
|
(snapshot.data[1])
|
|
? Positioned(
|
|
left: 14.0,
|
|
bottom: 163.0,
|
|
child: new Icon(
|
|
Icons.fingerprint,
|
|
color: Colors.white,
|
|
size: 40.0,
|
|
),
|
|
)
|
|
: Container(),
|
|
(snapshot.data[2])
|
|
? Positioned(
|
|
left: 14.0,
|
|
bottom: 110.0,
|
|
child: new Icon(
|
|
Icons.fingerprint,
|
|
color: Colors.white,
|
|
size: 40.0,
|
|
),
|
|
)
|
|
: Container(),
|
|
],
|
|
);
|
|
}
|
|
// else return Container();
|
|
}),
|
|
StreamBuilder<bool>(
|
|
stream: bBloc.isConnected$,
|
|
initialData: false,
|
|
builder: (BuildContext context, AsyncSnapshot<bool> snapshot) {
|
|
if (snapshot.hasData) {
|
|
if (snapshot.data) {
|
|
// _showInSnackBar('Connected');
|
|
return SuccessAnimation();
|
|
} else {
|
|
return Container();
|
|
}
|
|
}
|
|
return Container();
|
|
}),
|
|
StreamBuilder<Map<TouchData, Color>>(
|
|
stream: bBloc.getTouchesToVisualise$,
|
|
initialData: {TouchData(5, 0, 1200, 1200): Colors.black38},
|
|
builder: (BuildContext context,
|
|
AsyncSnapshot<Map<TouchData, Color>> snapshot) {
|
|
if (snapshot.hasData) {
|
|
print('Touchpainter');
|
|
return Container(
|
|
height: _heightSensor,
|
|
width: _widthSensor,
|
|
child: CustomPaint(
|
|
foregroundPainter: TouchPainter(context, snapshot.data),
|
|
),
|
|
);
|
|
}
|
|
}),
|
|
],
|
|
),
|
|
),
|
|
);
|
|
}</code></pre>
|
|
</section>
|
|
|
|
</div> <!-- /.main-content -->
|
|
|
|
<div class="col-xs-6 col-sm-6 col-md-2 sidebar sidebar-offcanvas-right">
|
|
</div><!--/.sidebar-offcanvas-->
|
|
|
|
</main>
|
|
|
|
<footer>
|
|
<span class="no-break">
|
|
touch_demonstrator 1.0.0+1
|
|
</span>
|
|
|
|
</footer>
|
|
|
|
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
|
|
<script src="static-assets/typeahead.bundle.min.js"></script>
|
|
<script src="static-assets/highlight.pack.js"></script>
|
|
<script src="static-assets/URI.js"></script>
|
|
<script src="static-assets/script.js"></script>
|
|
|
|
|
|
</body>
|
|
|
|
</html>
|