Flutter:嘗試擼一個具備慣性跟阻力的旋轉控件或用傳感器控制其旋轉

來源

一直都想寫一個能夠轉動的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

相關文章
相關標籤/搜索