Flutter容器颜色设置插件conatiner_color的使用
渐变容器 : 具有两个不同颜色的精美容器 #
关于 #
渐变容器是一个小部件,用于处理容器的渐变颜色和阴影。
功能 #
- 简单导入。
- 设置高度和宽度。
- 设置文本及其样式。
使用的工具 #
- Android Studio IDE 和 Xcode。
- Android 版本 7.0 或更高版本。
- Android SDK 24-33。
- Dart。
贡献 #
如果您想为这个项目做出贡献,欢迎您。最新的代码可以在主分支上找到。请创建一个新分支并在此处进行更改。您必须创建一个拉取请求到特定分支才能将其合并。
支持 #
如果您希望支持此项目以获得更好的版本,您可以联系 Rakshak Gaind 进行支持。
谢谢。
致意 ~ Rakshak
example/lib/main.dart
import 'package:conatiner_color/conatiner_color.dart';
import 'package:flutter/material.dart';
void main() {
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({super.key});
// 这个小部件是您的应用的根。
@override
Widget build(BuildContext context) {
return MaterialApp(
title: ‘Flutter Demo’,
theme: ThemeData(
// 这是您的应用的主题。
//
// 尝试运行您的应用。您会看到应用有一个蓝色的工具栏。然后,在不退出应用的情况下,将主色调更改为绿色并重新加载(在控制台中按 “r”,或者在保存更改后直接重新加载)。
// 注意,计数器不会重置为零;应用不会重新启动。
primarySwatch: Colors.blue,
),
home: const MyHomePage(title: ‘Flutter Demo Home Page’),
);
}
}
class MyHomePage extends StatefulWidget {
const MyHomePage({super.key, required this.title});
// 这个小部件是您应用的首页。它是有状态的,这意味着它有一个状态对象(定义在下面),该状态对象包含影响其外观的字段。
// 这个类是状态的配置。它保留了由父级(在这个例子中是App小部件)提供的值(在这个例子中是标题),并被构建方法使用。小部件子类中的字段总是标记为 “final”。
final String title;
@override
State<MyHomePage> createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
int _counter = 0;
void _incrementCounter() {
setState(() {
// 这次调用 setState 告诉 Flutter 框架某些东西已经改变,因此它会重新运行下面的构建方法,
// 以便显示更新后的值。如果我们不调用 setState 而只是改变 _counter,那么构建方法将不会被调用,
// 因此什么都不会发生。
_counter++;
});
}
@override
Widget build(BuildContext context) {
// 每次调用 setState 方法时,都会重新运行这个方法。
//
// Flutter 框架针对重新运行构建方法进行了优化,使其变得更快,这样您可以重建任何需要更新的小部件,而不是逐个更改实例。
return Scaffold(
appBar: AppBar(
// 在这里,我们从 MyHomePage 对象获取值,该对象是由 App.build 方法创建的,并将其用于设置我们的应用栏标题。
title: Text(widget.title),
),
body: Center(
// Center 是一个布局小部件。它接受一个子元素并将它放置在父元素的中间。
child: Column(
// Column 也是一个布局小部件。它接受一个子元素列表并垂直排列它们。默认情况下,它水平调整自己的大小以适应其子元素,并尝试与它的父元素一样高。
//
// 调用 “调试绘制”(在控制台中按 “p”,选择 Android Studio 中的 “切换调试绘制” 动作,或在 Visual Studio Code 中选择 “切换调试绘制” 命令)
// 可以查看每个小部件的线框。
//
// Column 有一些属性可以控制它如何调整自己的大小以及如何定位其子元素。在这里我们使用 mainAxisAlignment 来垂直居中子元素;主要轴是垂直轴,因为 Columns 是垂直的(交叉轴将是水平的)。
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
const ColorContainer(title: ‘容器文本’,),
const Text(
‘您已经点击了按钮这么多次:’,
),
Text(
‘$_counter’,
style: Theme.of(context).textTheme.headlineMedium,
),
],
),
),
floatingActionButton: FloatingActionButton(
onPressed: _incrementCounter,
tooltip: ‘增加’,
child: const Icon(Icons.add),
), // 这个逗号使自动格式化更好看。
);
}
}
更多关于Flutter容器颜色设置插件conatiner_color的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter容器颜色设置插件conatiner_color的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
在Flutter中,Container
是一个常用的布局小部件,它允许你设置背景颜色、边框、边距、内边距等属性。如果你想为 Container
设置背景颜色,可以直接使用 color
属性。不过,如果你想使用一个专门的插件来管理颜色,或者想要更灵活地设置颜色,可以考虑使用一些颜色管理插件,例如 flutter_colorpicker
或 material_color_utilities
。
1. 使用 Container
的 color
属性
最简单的方式是直接在 Container
中使用 color
属性来设置背景颜色:
import 'package:flutter/material.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
[@override](/user/override)
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(title: Text('Container Color Example')),
body: Center(
child: Container(
width: 200,
height: 200,
color: Colors.blue, // 设置容器背景颜色
child: Center(
child: Text(
'Hello, Flutter!',
style: TextStyle(color: Colors.white),
),
),
),
),
),
);
}
}
2. 使用 flutter_colorpicker
插件
如果你想提供一个颜色选择器,让用户动态选择颜色,可以使用 flutter_colorpicker
插件。
安装插件:
在 pubspec.yaml
中添加依赖:
dependencies:
flutter:
sdk: flutter
flutter_colorpicker: ^1.0.3
然后运行 flutter pub get
安装依赖。
使用示例:
import 'package:flutter/material.dart';
import 'package:flutter_colorpicker/flutter_colorpicker.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
[@override](/user/override)
Widget build(BuildContext context) {
return MaterialApp(
home: HomeScreen(),
);
}
}
class HomeScreen extends StatefulWidget {
[@override](/user/override)
_HomeScreenState createState() => _HomeScreenState();
}
class _HomeScreenState extends State<HomeScreen> {
Color _selectedColor = Colors.blue;
void _showColorPicker() {
showDialog(
context: context,
builder: (BuildContext context) {
return AlertDialog(
title: Text('Pick a color'),
content: SingleChildScrollView(
child: ColorPicker(
pickerColor: _selectedColor,
onColorChanged: (color) {
setState(() {
_selectedColor = color;
});
},
showLabel: true,
pickerAreaHeightPercent: 0.8,
),
),
actions: <Widget>[
TextButton(
child: Text('OK'),
onPressed: () {
Navigator.of(context).pop();
},
),
],
);
},
);
}
[@override](/user/override)
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: Text('Color Picker Example')),
body: Center(
child: GestureDetector(
onTap: _showColorPicker,
child: Container(
width: 200,
height: 200,
color: _selectedColor, // 使用选择的颜色
child: Center(
child: Text(
'Tap to change color',
style: TextStyle(color: Colors.white),
),
),
),
),
),
);
}
}
3. 使用 material_color_utilities
插件
如果你想要生成 Material Design 的颜色主题,可以使用 material_color_utilities
插件。这个插件可以帮助你生成基于主色调的 Material Design 颜色方案。
安装插件:
在 pubspec.yaml
中添加依赖:
dependencies:
flutter:
sdk: flutter
material_color_utilities: ^0.2.0
然后运行 flutter pub get
安装依赖。
使用示例:
import 'package:flutter/material.dart';
import 'package:material_color_utilities/material_color_utilities.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
[@override](/user/override)
Widget build(BuildContext context) {
final colorScheme = ColorScheme.fromSeed(seedColor: Colors.blue);
return MaterialApp(
theme: ThemeData(
colorScheme: colorScheme,
),
home: HomeScreen(),
);
}
}
class HomeScreen extends StatelessWidget {
[@override](/user/override)
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: Text('Material Color Utilities Example')),
body: Center(
child: Container(
width: 200,
height: 200,
color: Theme.of(context).colorScheme.primary, // 使用主题颜色
child: Center(
child: Text(
'Hello, Flutter!',
style: TextStyle(color: Theme.of(context).colorScheme.onPrimary),
),
),
),
),
);
}
}