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)),
),
),
body: ListView(
padding: const EdgeInsets.all(20),
body: Stack(
children: [
_buildSectionHeader('SERVER'),
const SizedBox(height: 12),
_buildTextField('Server URL', _serverUrlController),
const SizedBox(height: 12),
_buildTextField('Device ID', _deviceIdController),
const SizedBox(height: 24),
_buildSectionHeader('LOCATION'),
const SizedBox(height: 12),
_buildAccuracyDropdown(),
const SizedBox(height: 12),
_buildNumberField('Distance Filter (m)', _distanceFilterController),
const SizedBox(height: 12),
_buildNumberField('Update Interval (s)', _intervalController),
const SizedBox(height: 12),
_buildNumberField('Heartbeat (s)', _heartbeatController),
const SizedBox(height: 24),
_buildSectionHeader('ADVANCED'),
const SizedBox(height: 8),
_buildSwitch(
'Offline Buffering',
'Queue locations when network unavailable',
_offlineBuffer,
(v) => setState(() => _offlineBuffer = v),
ListView(
padding: const EdgeInsets.all(20),
children: [
_buildSectionHeader('SERVER'),
const SizedBox(height: 12),
_buildTextField('Server URL', _serverUrlController),
const SizedBox(height: 12),
_buildTextField('Device ID', _deviceIdController),
const SizedBox(height: 24),
_buildSectionHeader('LOCATION'),
const SizedBox(height: 12),
_buildAccuracyDropdown(),
const SizedBox(height: 12),
_buildNumberField('Distance Filter (m)', _distanceFilterController),
const SizedBox(height: 12),
_buildNumberField('Update Interval (s)', _intervalController),
const SizedBox(height: 12),
_buildNumberField('Heartbeat (s)', _heartbeatController),
const SizedBox(height: 24),
_buildSectionHeader('ADVANCED'),
const SizedBox(height: 8),
_buildSwitch(
'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(),
],
),