mirror of
https://github.com/vodemn/m3_lightmeter.git
synced 2024-11-22 07:20:39 +00:00
moved center button size to the bar itself
This commit is contained in:
parent
41353c9383
commit
04bd00b2c0
3 changed files with 40 additions and 43 deletions
|
@ -55,33 +55,30 @@ class _MeteringMeasureButtonState extends State<MeteringMeasureButton> {
|
|||
_isPressed = false;
|
||||
});
|
||||
},
|
||||
child: SizedBox.fromSize(
|
||||
size: const Size.square(Dimens.grid72),
|
||||
child: Stack(
|
||||
children: [
|
||||
Center(
|
||||
child: AnimatedScale(
|
||||
duration: Dimens.durationS,
|
||||
scale: _isPressed ? 0.9 : 1.0,
|
||||
child: FilledCircle(
|
||||
color: Theme.of(context).colorScheme.onSurface,
|
||||
size: Dimens.grid72 - Dimens.grid8,
|
||||
child: Center(
|
||||
child: widget.ev != null ? _EvValueText(ev: widget.ev!, ev100: widget.ev100!) : null,
|
||||
),
|
||||
child: Stack(
|
||||
children: [
|
||||
Center(
|
||||
child: AnimatedScale(
|
||||
duration: Dimens.durationS,
|
||||
scale: _isPressed ? 0.9 : 1.0,
|
||||
child: FilledCircle(
|
||||
color: Theme.of(context).colorScheme.onSurface,
|
||||
size: Dimens.grid72 - Dimens.grid8,
|
||||
child: Center(
|
||||
child: widget.ev != null ? _EvValueText(ev: widget.ev!, ev100: widget.ev100!) : null,
|
||||
),
|
||||
),
|
||||
),
|
||||
Positioned.fill(
|
||||
child: CircularProgressIndicator(
|
||||
/// This key is needed to make indicator start from the same point every time
|
||||
key: ValueKey(widget.isMetering),
|
||||
color: Theme.of(context).colorScheme.onSurface,
|
||||
value: widget.isMetering ? null : 1,
|
||||
),
|
||||
),
|
||||
Positioned.fill(
|
||||
child: CircularProgressIndicator(
|
||||
/// This key is needed to make indicator start from the same point every time
|
||||
key: ValueKey(widget.isMetering),
|
||||
color: Theme.of(context).colorScheme.onSurface,
|
||||
value: widget.isMetering ? null : 1,
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
);
|
||||
}
|
||||
|
|
|
@ -3,8 +3,8 @@ import 'package:lightmeter/res/dimens.dart';
|
|||
|
||||
class BottomControlsBar extends StatelessWidget {
|
||||
final Widget center;
|
||||
final IconButton? left;
|
||||
final IconButton? right;
|
||||
final Widget? left;
|
||||
final Widget? right;
|
||||
|
||||
const BottomControlsBar({
|
||||
required this.center,
|
||||
|
@ -42,7 +42,10 @@ class BottomControlsBar extends StatelessWidget {
|
|||
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
|
||||
children: [
|
||||
if (left != null) Expanded(child: Center(child: left)) else const Spacer(),
|
||||
center,
|
||||
SizedBox.fromSize(
|
||||
size: const Size.square(Dimens.grid72),
|
||||
child: center,
|
||||
),
|
||||
if (right != null) Expanded(child: Center(child: right)) else const Spacer(),
|
||||
],
|
||||
),
|
||||
|
|
|
@ -75,7 +75,6 @@ class _TimerScreenState extends State<TimerScreen> with TickerProviderStateMixin
|
|||
fontSize: Dimens.grid24,
|
||||
),
|
||||
),
|
||||
actions: [if (Navigator.of(context).canPop()) const CloseButton()],
|
||||
),
|
||||
body: SafeArea(
|
||||
bottom: false,
|
||||
|
@ -108,25 +107,23 @@ class _TimerScreenState extends State<TimerScreen> with TickerProviderStateMixin
|
|||
},
|
||||
icon: const Icon(Icons.restore),
|
||||
),
|
||||
center: SizedBox.fromSize(
|
||||
size: const Size.square(Dimens.grid72),
|
||||
child: BlocBuilder<TimerBloc, TimerState>(
|
||||
builder: (_, state) => FloatingActionButton(
|
||||
shape: state is TimerResumedState ? null : const CircleBorder(),
|
||||
onPressed: () {
|
||||
if (timelineAnimation.value == 0) {
|
||||
return;
|
||||
}
|
||||
final event = state is TimerStoppedState ? const StartTimerEvent() : const StopTimerEvent();
|
||||
context.read<TimerBloc>().add(event);
|
||||
},
|
||||
child: AnimatedIcon(
|
||||
icon: AnimatedIcons.play_pause,
|
||||
progress: startStopIconAnimation,
|
||||
),
|
||||
center: BlocBuilder<TimerBloc, TimerState>(
|
||||
builder: (_, state) => FloatingActionButton(
|
||||
shape: state is TimerResumedState ? null : const CircleBorder(),
|
||||
onPressed: () {
|
||||
if (timelineAnimation.value == 0) {
|
||||
return;
|
||||
}
|
||||
final event = state is TimerStoppedState ? const StartTimerEvent() : const StopTimerEvent();
|
||||
context.read<TimerBloc>().add(event);
|
||||
},
|
||||
child: AnimatedIcon(
|
||||
icon: AnimatedIcons.play_pause,
|
||||
progress: startStopIconAnimation,
|
||||
),
|
||||
),
|
||||
),
|
||||
right: Navigator.of(context).canPop() ? const CloseButton() : null,
|
||||
),
|
||||
],
|
||||
),
|
||||
|
|
Loading…
Reference in a new issue