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

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());
}
temp.dart
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))
      ],
    );
  }
}