Skip to content

Instantly share code, notes, and snippets.

View dinko7's full-sized avatar

Dinko Marinac dinko7

View GitHub Profile
@dinko7
dinko7 / non_scrollable_refresh_indicator.dart
Created April 2, 2024 12:51
Swipe to refresh on a non-scrollable page.
import 'package:flutter/material.dart';
class _ClampingScrollBehavior extends ScrollBehavior {
@override
ScrollPhysics getScrollPhysics(BuildContext context) =>
const ClampingScrollPhysics();
}
class NonScrollableRefreshIndicator extends StatelessWidget {
final Widget child;
@dinko7
dinko7 / record_button.dart
Created January 22, 2024 15:17
Animated Record Button Flutter
import 'package:flutter/material.dart';
import 'package:lottie/lottie.dart';
const _introAnimationEnd = 60 / 240;
const _lastStopIconAnimationEnd = 180 / 240;
class RecordButton extends StatefulWidget {
const RecordButton({
Key? key,
required this.onStartRecording,
@dinko7
dinko7 / app_lifecycle_aware.dart
Created January 16, 2024 08:50
Android style app lifecycle awareness mixin for Flutter
import 'package:flutter/material.dart';
mixin AppLifecycleAware<T extends StatefulWidget> on State<T> {
late final AppLifecycleListener _listener;
@override
void initState() {
super.initState();
_listener = AppLifecycleListener(
onDetach: onDetach,
@dinko7
dinko7 / hive_enum_class_adapter_example.dart
Created December 3, 2023 11:14
Hive Generic Enum Class Adapter Example
import 'package:hive_flutter/hive_flutter.dart';
/**
* Generic adapter for enum classes.
*/
class EnumClassAdapter<T extends Enum> extends TypeAdapter<T> {
EnumClassAdapter(this.typeId, this.values);
static const int _numberOfFields = 1;