import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; class SnrRssiDelayView extends StatelessWidget { final String time; final String snr; final String rssi; final String delay; SnrRssiDelayView({ required this.time, required this.snr, required this.rssi, required this.delay, }); @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( elevation: 0, title: Text('Detail SNR, RSSI, Delay'), ), body: Padding( padding: EdgeInsets.all(16), child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ _buildDetailRow(context, 'Waktu', time), SizedBox(height: 16), Row( children: [ Expanded(child: _buildDetailBox('SNR', snr, TextAlign.left)), SizedBox(width: 8), Expanded( child: _buildDetailBox('RSSI', rssi, TextAlign.center)), SizedBox(width: 8), Expanded( child: _buildDetailBox('Delay', delay, TextAlign.right)), ], ), ], ), ), ); } Widget _buildDetailRow(BuildContext context, String label, String value) { return Row( children: [ Expanded( child: Text( '$label: $value', style: TextStyle(fontSize: 18), ), ), IconButton( icon: Icon(Icons.copy), onPressed: () { Clipboard.setData(ClipboardData(text: value)); ScaffoldMessenger.of(context).showSnackBar( SnackBar(content: Text('$label disalin ke clipboard')), ); }, ), ], ); } Widget _buildDetailBox(String label, String value, TextAlign align) { return Container( padding: EdgeInsets.symmetric(horizontal: 16, vertical: 12), decoration: BoxDecoration( border: Border.all(color: Colors.grey), borderRadius: BorderRadius.circular(8), ), child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ Text( label, style: TextStyle(fontSize: 18, fontWeight: FontWeight.bold), ), SizedBox(height: 8), Text( value, style: TextStyle(fontSize: 16), textAlign: align, ), ], ), ); } }