Flutter:尝试撸一个具有惯性跟阻力的旋转控件或用传感器控制其旋转
生活随笔
收集整理的這篇文章主要介紹了
Flutter:尝试撸一个具有惯性跟阻力的旋转控件或用传感器控制其旋转
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
來(lái)源
一直都想寫(xiě)一個(gè)可以轉(zhuǎn)動(dòng)的Widget,并且可以近似的模擬生活中的慣性跟阻力,因?yàn)樵O(shè)計(jì)到一些數(shù)學(xué)公式,作者還去請(qǐng)教了我的高中老師,最后學(xué)了點(diǎn)傳感器,就直接外加個(gè)可選擇傳感器控制了
效果
實(shí)現(xiàn)方法
邏輯部分比較復(fù)雜,作者寫(xiě)了好幾天,最后干脆直接寫(xiě)了一個(gè)Dart Packages上傳到了Pub,里面有大量的注釋,代碼還很不簡(jiǎn)化體諒一下,歡迎體驗(yàn)
將其添加到包的pubspec.yaml文件中:
dependencies: rotated_view: ^1.0.1 復(fù)制代碼然后導(dǎo)入包
import 'package:rotated_view/rotated_view.dart'; 復(fù)制代碼代碼部分
import 'dart:async';import 'package:flutter/material.dart'; import 'package:rotated_view/rotated_view.dart';void main() => runApp(MyApp());class MyApp extends StatefulWidget { _MyAppState createState() => _MyAppState(); }class _MyAppState extends State<MyApp> { StreamSubscription _subscription; void initState() {super.initState(); } void dispose() {if (_subscription != null) {_subscription.cancel();}super.dispose(); } 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(""),],)),),); } } 復(fù)制代碼我的FlutterGithub
轉(zhuǎn)載于:https://juejin.im/post/5c3b352d5188253a317b50d1
總結(jié)
以上是生活随笔為你收集整理的Flutter:尝试撸一个具有惯性跟阻力的旋转控件或用传感器控制其旋转的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 面试题解(2):loop相关
- 下一篇: laravel 缓存相关常用操作