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

相关文章
相关标签/搜索