import 'package:flutter/material.dart'; import 'package:get/get.dart'; import '../controllers/ota_upgrade_controller.dart'; class OtaUpgradeView extends GetView { const OtaUpgradeView({Key? key}) : super(key: key); @override Widget build(BuildContext context) { return Scaffold( body: Center( // 添加外层Center child: SingleChildScrollView( // 添加滚动防止小屏溢出 child: Padding( padding: EdgeInsets.all(20), child: Column( mainAxisAlignment: MainAxisAlignment.center, crossAxisAlignment: CrossAxisAlignment.center, // 水平居中 mainAxisSize: MainAxisSize.min, // 紧凑布局 children: [ // 设备图标 CircleAvatar( radius: 60, backgroundColor: Colors.blue[100], child: Icon( Icons.phone_iphone, size: 60, color: Colors.blue, ), ), SizedBox(height: 30), // 版本信息 Column( children: [ Text( '当前版本', style: TextStyle( fontSize: 18, color: Colors.grey, ), ), SizedBox(height: 8), Text( 'v${controller.currentVersion}', style: TextStyle( fontSize: 24, fontWeight: FontWeight.bold, color: Colors.blue, ), ), ], ), SizedBox(height: 40), // 更新按钮/进度条 Obx(() { if (controller.isUpdating.value) { return Column( children: [ SizedBox( width: 200, // 限制进度条宽度 child: LinearProgressIndicator( value: controller.downloadProgress.value, backgroundColor: Colors.grey[200], valueColor: AlwaysStoppedAnimation(Colors.blue), minHeight: 12, borderRadius: BorderRadius.circular(10), ), ), SizedBox(height: 20), Text( '${(controller.downloadProgress.value * 100).toStringAsFixed(1)}%', style: TextStyle(color: Colors.grey), ) ], ); } else { return ElevatedButton( onPressed: controller.isUpdateAvailable.value ? null : controller.checkUpdate, style: ElevatedButton.styleFrom( backgroundColor: controller.isUpdateAvailable.value ? Colors.grey : Colors.blue, foregroundColor: Colors.white, padding: EdgeInsets.symmetric(horizontal: 40, vertical: 15), shape: RoundedRectangleBorder( borderRadius: BorderRadius.circular(30), ), ), child: Text( controller.isUpdateAvailable.value ? '已是最新版本' : '立即更新', style: TextStyle(fontSize: 16), ), ); } }), ], ), ), ), ), ); } }