一直都想寫一個能夠轉動的Widget,而且能夠近似的模擬生活中的慣性跟阻力,由於設計到一些數學公式,做者還去請教了個人高中老師,最後學了點傳感器,就直接外加個可選擇傳感器控制了git
邏輯部分比較複雜,做者寫了好幾天,最後乾脆直接寫了一個Dart Packages上傳到了Pub,裏面有大量的註釋,代碼還很不簡化體諒一下,歡迎體驗github
將其添加到包的pubspec.yaml文件中:async
dependencies:
rotated_view: ^1.0.1
複製代碼
而後導入包ide
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(""),
],
)),
),
);
}
}
複製代碼
個人FlutterGithubui