Last updated:
0 purchases
shake gesture
shake_gesture #
This Flutter plugin detects shake gestures on Android and iOS.
Usage #
class HomePage extends StatelessWidget {
const HomePage({super.key});
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: const Text('ShakeGesture Example')),
body: Center(
// Here it is 👇
child: ShakeGesture(
onShake: () {
ScaffoldMessenger.of(context).showSnackBar(
const SnackBar(content: Text('Shake!')),
);
},
child: const Center(
child: OutlinedButton(
onPressed: ShakeGestureTestHelperExtension.simulateShake,
child: Text('Simulate Shake'),
),
),
),
// The end.
),
);
}
}
copied to clipboard
Simulator #
This package works in the iOS simulator.
To simulate a shake event in Android emulator, either play with the Sensor Manager, or add the following piece of code to your Activity:
class MainActivity: FlutterActivity() {
override fun onKeyDown(keyCode: Int, event: KeyEvent?): Boolean {
if (keyCode == KeyEvent.KEYCODE_MENU) {
this.flutterEngine?.plugins?.get(ShakeGesturePlugin::class.java).let { plugin ->
if (plugin is ShakeGesturePlugin)
plugin.onShake()
}
}
return super.onKeyDown(keyCode, event)
}
}
copied to clipboard
Then, you can use ctrl+m or cmd+m (mac) to simulate a shake motion.
Test Helper #
In order to simulate a shake gesture in a test, add the following package:
shake_gesture_test_helper
And call the shake method on your widgetTester:
testWidgets('it detects shakes', (widgetTester) async {
var shakeDetected = false;
await widgetTester.pumpWidget(
ShakeGesture(
onShake: () {
shakeDetected = true;
},
child: Container(),
),
);
await widgetTester.shake();
expect(shakeDetected, true);
});
copied to clipboard
Contribute #
Test your contribution by running the unit tests and integration tests.
cd shake_gesture/example
flutter test
flutter test integration_test
copied to clipboard
For personal and professional use. You cannot resell or redistribute these repositories in their original state.
There are no reviews.