fix: use Stack to render overlay above ListView content

This commit is contained in:
fiatcode 2026-04-30 18:22:13 +07:00
parent 9ef92a805a
commit e22a8d5958
No known key found for this signature in database

View file

@ -167,43 +167,47 @@ class _SettingsScreenState extends State<SettingsScreen> {
child: Container(height: 1, color: const Color(0xFF2a2a2a)), child: Container(height: 1, color: const Color(0xFF2a2a2a)),
), ),
), ),
body: ListView( body: Stack(
padding: const EdgeInsets.all(20),
children: [ children: [
_buildSectionHeader('SERVER'), ListView(
const SizedBox(height: 12), padding: const EdgeInsets.all(20),
_buildTextField('Server URL', _serverUrlController), children: [
const SizedBox(height: 12), _buildSectionHeader('SERVER'),
_buildTextField('Device ID', _deviceIdController), const SizedBox(height: 12),
const SizedBox(height: 24), _buildTextField('Server URL', _serverUrlController),
_buildSectionHeader('LOCATION'), const SizedBox(height: 12),
const SizedBox(height: 12), _buildTextField('Device ID', _deviceIdController),
_buildAccuracyDropdown(), const SizedBox(height: 24),
const SizedBox(height: 12), _buildSectionHeader('LOCATION'),
_buildNumberField('Distance Filter (m)', _distanceFilterController), const SizedBox(height: 12),
const SizedBox(height: 12), _buildAccuracyDropdown(),
_buildNumberField('Update Interval (s)', _intervalController), const SizedBox(height: 12),
const SizedBox(height: 12), _buildNumberField('Distance Filter (m)', _distanceFilterController),
_buildNumberField('Heartbeat (s)', _heartbeatController), const SizedBox(height: 12),
const SizedBox(height: 24), _buildNumberField('Update Interval (s)', _intervalController),
_buildSectionHeader('ADVANCED'), const SizedBox(height: 12),
const SizedBox(height: 8), _buildNumberField('Heartbeat (s)', _heartbeatController),
_buildSwitch( const SizedBox(height: 24),
'Offline Buffering', _buildSectionHeader('ADVANCED'),
'Queue locations when network unavailable', const SizedBox(height: 8),
_offlineBuffer, _buildSwitch(
(v) => setState(() => _offlineBuffer = v), 'Offline Buffering',
'Queue locations when network unavailable',
_offlineBuffer,
(v) => setState(() => _offlineBuffer = v),
),
const SizedBox(height: 4),
_buildSwitch(
'Stop Detection',
'Auto-stop tracking when stationary',
_stopDetection,
(v) => setState(() => _stopDetection = v),
),
const SizedBox(height: 32),
_buildSaveButton(),
const SizedBox(height: 20),
],
), ),
const SizedBox(height: 4),
_buildSwitch(
'Stop Detection',
'Auto-stop tracking when stationary',
_stopDetection,
(v) => setState(() => _stopDetection = v),
),
const SizedBox(height: 32),
_buildSaveButton(),
const SizedBox(height: 20),
if (_showEasterEgg) _buildEasterEggOverlay(), if (_showEasterEgg) _buildEasterEggOverlay(),
], ],
), ),