Flutter界面组件或视图管理插件vuitv的使用
Flutter界面组件或视图管理插件vuitv的使用
vuitv代码基础
一个由VuiTv创建的项目 🤖
示例代码
import 'package:flutter/material.dart';
void main() {
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({Key? key}) : super(key: key);
// 这个小部件是你的应用的根。
[@override](/user/override)
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
theme: ThemeData(
// 这是你应用的主题。
//
// 尝试运行你的应用。你会看到应用有一个蓝色工具栏。然后,在不退出应用的情况下,将primarySwatch修改为Colors.green并重新加载应用,
// 注意计数器不会重置回零;应用不会重启。
primarySwatch: Colors.blue,
),
home: const MyHomePage(title: 'Flutter Demo Home Page'),
);
}
}
class MyHomePage extends StatefulWidget {
const MyHomePage({Key? key, required this.title}) : super(key: key);
// 这个小部件是你的应用的主页。它是有状态的,意味着它有一个包含影响其外观的字段的状态对象。
// 这个类是状态的配置。它保存了由父级(在这个例子中是App小部件)提供的值(在这个例子中是标题),并在构建方法中使用。
// 在小部件子类中的字段总是标记为"final"。
final String title;
[@override](/user/override)
State<MyHomePage> createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
int _counter = 0;
void _incrementCounter() {
setState(() {
// 这个调用setState告诉Flutter框架某些东西已经改变,这导致它重新运行下面的构建方法
// 所以显示可以反映更新后的值。如果我们改变了_counter而不调用setState(),那么构建方法将不会被再次调用,
// 并且看起来什么都不会发生。
_counter++;
});
}
[@override](/user/override)
Widget build(BuildContext context) {
// 这个方法每次调用setState时都会被重新运行,例如在上面的_incrementCounter方法中。
//
// Flutter框架已经被优化,使得重新运行构建方法变得很快,因此你可以只重建任何需要更新的部分,而不是单独更改小部件实例。
return Scaffold(
appBar: AppBar(
// 这里我们从MyHomePage对象获取值,该对象是由App.build方法创建的,并将其用于设置我们的appbar标题。
title: Text(widget.title),
),
body: Center(
// Center是一个布局小部件。它接受一个子元素并将其定位在其父元素的中间。
child: Column(
// Column也是一个布局小部件。它接受一个小部件列表并垂直排列它们。
// 默认情况下,它水平调整自己的大小以适应其子元素,并尝试与其父元素一样高。
//
// 调用"调试绘制"(在控制台按"p",选择Android Studio中的"切换调试绘制"操作,或Visual Studio Code中的"切换调试绘制"命令)
// 来查看每个小部件的线框。
//
// Column有几个属性来控制它如何调整自身大小和如何定位其子元素。这里我们使用mainAxisAlignment来垂直居中子元素;
// 主轴是垂直的,因为Column是垂直的(交叉轴将是水平的)。
mainAxisAlignment: MainAxisAlignment.center,
children: [
const Text(
'你已经按下了按钮这么多次:',
),
Text(
'$_counter',
style: Theme.of(context).textTheme.headlineMedium,
),
],
),
),
floatingActionButton: FloatingActionButton(
onPressed: _incrementCounter,
tooltip: 'Increment',
child: const Icon(Icons.add),
), // 这个尾随的逗号使自动格式化更好看。
);
}
}
更多关于Flutter界面组件或视图管理插件vuitv的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html
1 回复