123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117 |
- import 'package:flutter/material.dart';
- import 'package:smartledz_wifi_test/plugin/wifi_plugin.dart';
- import 'package:flutter_screenutil/flutter_screenutil.dart';
- import 'package:smartledz_wifi_test/models/wifi_model.dart';
- import 'package:smartledz_wifi_test/widgets/button_for_block.dart';
- import 'package:smartledz_wifi_test/widgets/wifi_item.dart';
- void main() {
- runApp(const MyApp());
- }
- class MyApp extends StatelessWidget {
- const MyApp({super.key});
- @override
- Widget build(BuildContext context) {
- return ScreenUtilInit(
- builder: (BuildContext context, Widget? child) {
- return MaterialApp(
- title: 'SmartLEDZ WiFi Test',
- theme: ThemeData(
- primarySwatch: Colors.blue,
- ),
- home: Scaffold(
- body: child!,
- ),
- );
- },
- child: const SafeArea(
- left: false,
- right: false,
- bottom: false,
- child: WifiList(),
- ),
- );
- }
- }
- class WifiList extends StatefulWidget {
- const WifiList({Key? key}) : super(key: key);
- @override
- State<WifiList> createState() => _WifiListState();
- }
- class _WifiListState extends State<WifiList> {
- final List<WifiModel> _wifiList = [
- WifiModel(ssid: "zhonghui-5G", bssid: "1", rssi: 10),
- WifiModel(ssid: "zhonghui_02", bssid: "2", rssi: 13),
- WifiModel(ssid: "endo-lighting", bssid: "3", rssi: 50),
- WifiModel(ssid: "endo-lighting", bssid: "4", rssi: 50),
- WifiModel(ssid: "endo-lighting", bssid: "5", rssi: 50),
- WifiModel(ssid: "endo-lighting", bssid: "6", rssi: 50),
- WifiModel(ssid: "endo-lighting", bssid: "7", rssi: 50),
- WifiModel(ssid: "endo-lighting", bssid: "8", rssi: 50),
- WifiModel(ssid: "endo-lighting", bssid: "9", rssi: 50, result: "测试通过"),
- WifiModel(ssid: "endo-lighting", bssid: "10", rssi: 50),
- WifiModel(ssid: "endo-lighting", bssid: "11", rssi: 50, result: "正在测试"),
- WifiModel(ssid: "endo-lighting", bssid: "12", rssi: 50, result: "正在测试"),
- WifiModel(ssid: "endo-lighting", bssid: "13", rssi: 50, result: "未通过"),
- WifiModel(ssid: "endo-lighting", bssid: "14", rssi: 50),
- WifiModel(ssid: "endo-lighting", bssid: "15", rssi: 50),
- WifiModel(ssid: "endo-lighting", bssid: "16", rssi: 50),
- WifiModel(ssid: "endo-lighting", bssid: "17", rssi: 50),
- WifiModel(ssid: "endo-lighting", bssid: "18", rssi: 50),
- ];
- final List<String> _selectWifiList = []; // 已选择的wifi的bssid标识列表
- @override
- Widget build(BuildContext context) {
- return Column(
- children: [
- Expanded(
- child: ListView(
- children: List.generate(_wifiList.length, (index){
- WifiModel wifi = _wifiList[index];
- return WifiItem(
- wifiModel: wifi, // wifi模型
- active: _selectWifiList.contains(wifi.bssid), // 是否选中状态
- onTap: (WifiModel wifiModel){ // 列表点击事件
- setState(() {
- if(_selectWifiList.contains(wifi.bssid)){ // 已选中,则取消选中
- _selectWifiList.remove(wifi.bssid);
- }else{
- _selectWifiList.add(wifi.bssid);
- }
- });
- },
- );
- }),
- ),
- ),
- ButtonForBlock(
- title: "开始测试",
- radius: 0,
- width: MediaQuery.of(context).size.width,
- height: 50.sp,
- onTap: (){
- if(_selectWifiList.isNotEmpty){
- // 有选中的wifi,则只处理选中的wifi
- // TODO 此处完善处理逻辑
- // 选中的wifi bssid列表 _selectWifiList
- return;
- }
- // 处理全部wifi
- // TODO 此处完善处理逻辑
- },
- )
- ],
- );
- }
- }
|