hello
voila ma première page allant cherche des température par html(jeedom)
et je galère pour mettre en place le push and refresh
qq'un aurait il une idées svp ???
Merci de votre aide
main.dart
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import 'package:flutter/material.dart'; import 'package:temp/screen_temp.dart'; void main() { runApp(MyApp()); } class MyApp extends StatelessWidget { const MyApp({Key? key}) : super(key: key); @override Widget build(BuildContext context) { return MaterialApp( title: 'Température maison', debugShowCheckedModeBanner: false, theme: ThemeData( primarySwatch: Colors.blue, ), home: ScreenTemp(), ); } }
screen_temp.dart
temp.dart
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59 // ignore_for_file: prefer_const_constructors import 'package:flutter/material.dart'; import 'widget_temp.dart'; import 'temp.dart'; class ScreenTemp extends StatelessWidget { List<Temp> List_Temp = [ Temp( 'http:url1', 'Chambre Seb Fab'), Temp( 'http:url2', 'Chambre Elise'), Temp( 'http:url3', 'Extérieur'), Temp( 'http:url4', 'Bureau'), Temp( 'http:url5', 'Cuisine') ]; @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar(title: const Text("Température maison")), body: RefreshIndicator( onRefresh: () async { //Navigator.popAndPushNamed(context, 'row1Screen'); }, child: ListView( children: [ Container ( padding: const EdgeInsets.all(10), child: Row ( mainAxisAlignment: MainAxisAlignment.spaceEvenly, children: [ getTextWidgets(List_Temp), ], ), )], ), ), ); } } Widget getTextWidgets(List<Temp> list_temp) { return Column(children: list_temp.map((item) => Wtemp(Temperature: item)).toList()); }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 class Temp { String url; String Piece; Temp(this.url,this.Piece); }
widget_temp.dart
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43 import 'package:flutter/material.dart'; import 'package:http/http.dart' as http; import 'temp.dart'; class Wtemp extends StatefulWidget { final Temp Temperature; const Wtemp({Key? key, required this.Temperature}) : super(key: key); _row2Widget createState() => _row2Widget(this.Temperature); } class _row2Widget extends State<Wtemp> { _row2Widget(this._Temperature); final Temp _Temperature; String _piece = ''; String _temp = ''; @override void initState() { super.initState(); GetTemp(); } Future GetTemp() async { final response = await http.get(Uri.parse(_Temperature.url)); setState(() { _temp = response.body; _piece = _Temperature.Piece; }); } Widget build(BuildContext context) { return Column( mainAxisAlignment: MainAxisAlignment.spaceEvenly, children: [ Text("$_piece", style: TextStyle(fontSize: 30,color: Colors.blue)), Text("$_temp", style: TextStyle(fontSize: 30)) ], ); } }
Partager