来源
一直都想写一个可以转动的Widget,并且可以近似的模拟生活中的惯性跟阻力,因为设计到一些数学公式,作者还去请教了我的高中老师,最后学了点传感器,就直接外加个可选择传感器控制了
效果
![](https://img.haomeiwen.com/i14486200/3af54f78dac9dce5.gif)
实现方法
逻辑部分比较复杂,作者写了好几天,最后干脆直接写了一个Dart Packages上传到了Pub,里面有大量的注释,代码还很不简化体谅一下,欢迎体验
将其添加到包的pubspec.yaml文件中:
dependencies:
rotated_view: ^1.0.1
然后导入包
import 'package:rotated_view/rotated_view.dart';
代码部分
import 'dart:async';
import 'package:flutter/material.dart';
import 'package:rotated_view/rotated_view.dart';
void main() => runApp(MyApp());
class MyApp extends StatefulWidget {
@override
_MyAppState createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
StreamSubscription _subscription;
@override
void initState() {
super.initState();
}
@override
void dispose() {
if (_subscription != null) {
_subscription.cancel();
}
super.dispose();
}
@override
Widget build(BuildContext context) {
return MaterialApp(
color: Colors.black,
home: Scaffold(
body: Center(
child: Column(
children: <Widget>[
Padding(
padding: EdgeInsets.fromLTRB(0, 100, 0, 0),
),
Container(
width: 400,
height: 400,
child: RotatedView(
child: Image.asset("images/launcher_background.png"),
usesensor: false,
issame: false,
haveinertia: true,
),
),
Text(""),
],
)),
),
);
}
}
我的FlutterGithub
网友评论