Flutter UI组件库插件bones_ui_bootstrap的使用
Flutter UI组件库插件bones_ui_bootstrap的使用
Bones_UI Bootstrap
bones_ui_bootstrap
是一个为 Bones_UI 增加 Bootstrap 支持的 Dart 包,允许在项目中使用 Bootstrap 组件和 CSS。
Embedded JavaScript Libraries
此包自动加载(并打包)以下必要的 JavaScript 库:
- Bootstrap: 4.6.1
- Bootstrap Icons: 1.8.1
- JQuery: 3.5.1
- Moment: 2.25.2
注意:您无需向项目中添加任何 HTML 或 JavaScript 代码即可实现与 Bootstrap 的完全集成。
使用示例
以下是一个简单的使用 bones_ui_bootstrap
的例子:
import 'dart:html';
import 'package:bones_ui/bones_ui_kit.dart';
import 'package:bones_ui_bootstrap/bones_ui_bootstrap.dart';
class MyUI extends UIRoot {
MyUI(super.rootContainer);
@override
void configure() {
Bootstrap.load();
}
@override
UIComponent renderContent() {
return MyPage(content);
}
}
class MyPage extends UIComponent {
MyPage(super.parent);
@override
dynamic render() {
return [
$header(content: '''
<nav class="navbar navbar-dark fixed-top bg-dark">
<a class="navbar-brand" href="#">
<ui-svg width="20px" height="20px" src="${BootstrapIcons.getIconPath('app-indicator')}"></ui-svg>
Fixed navbar
</a>
</nav>
'''),
$div(classes: 'container', content: [
'''
<br>
<h1 class="mt-5">Welcome</h1>
This is <b>Bones_UI</b> with <b>Bootstrap</b>!
<br><br>
''',
'<hr>',
'<b>BootstrapIcons</b>: ',
BootstrapIcons.allIcons
.sublist(0, 15)
.map((name) => BootstrapIcons.svgIconElement(name,
width: 20, style: 'margin: 2px 4px'))
.toList(),
' ...',
'<hr>',
'<b>BSDateRangePicker</b>: ',
BSDateRangePicker(content!),
'<hr>',
'<b>BSAccordion</b>: <br>',
BSAccordion(content!, [
AccordionItem('A Title', 'A text'),
AccordionItem('B Title', 'B text'),
AccordionItem('C Title', 'C text'),
]),
]),
$footer(classes: 'footer fixed-bottom', content: [
$hr,
$div(
classes: 'container text-muted pb-2',
content: 'Copyright © ${DateTime.now().year} Some Example')
])
];
}
}
void main() {
var output = document.querySelector('#output');
var myUI = MyUI(output);
myUI.initialize();
}
使用 Bootstrap Icons
您可以使用 BootstrapIcons
类来加载 Bootstrap Icons 中的 SVG 图标。例如:
var iconName = 'person-fill';
var iconPath = BootstrapIcons.getIconPath(iconName);
var svg = UISVG(parent, iconPath, width: '1.5em', color: '#0000FF', title: 'User');
功能和问题反馈
请在 issue tracker 提交功能请求和问题报告。
Colossus.Services
这是一个来自 Colossus.Services 的开源项目:通往顺畅解决方案的门户。
作者
Graciliano M. Passos: gmpassos@GitHub.
许可证
本项目采用 Apache License - Version 2.0.
以上是关于 bones_ui_bootstrap
插件的详细使用说明和示例代码。希望这些信息能帮助您更好地理解和使用这个强大的工具。
更多关于Flutter UI组件库插件bones_ui_bootstrap的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter UI组件库插件bones_ui_bootstrap的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
当然,以下是一个关于如何在Flutter项目中使用bones_ui_bootstrap
UI组件库插件的示例代码案例。这个库提供了一些预定义的UI组件,可以加速开发过程。
首先,确保你已经在你的Flutter项目中添加了bones_ui_bootstrap
依赖。打开你的pubspec.yaml
文件,并添加以下依赖:
dependencies:
flutter:
sdk: flutter
bones_ui_bootstrap: ^latest_version # 请替换为最新版本号
然后运行flutter pub get
来安装依赖。
接下来,在你的Dart文件中导入bones_ui_bootstrap
库,并使用其中的组件。以下是一个简单的示例,展示了如何使用一些基本的组件:
import 'package:flutter/material.dart';
import 'package:bones_ui_bootstrap/bones_ui_bootstrap.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Bones UI Bootstrap Demo',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: Scaffold(
appBar: AppBar(
title: Text('Bones UI Bootstrap Demo'),
),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
// 使用Bones UI Bootstrap的按钮组件
BonesButton(
text: 'Primary Button',
color: Colors.blue,
onPressed: () {
print('Primary Button Pressed');
},
),
SizedBox(height: 20),
// 使用Bones UI Bootstrap的输入框组件
BonesTextField(
label: 'Email',
prefixIcon: Icons.email,
suffixIcon: Icons.visibility,
onSuffixIconPressed: () {
print('Suffix Icon Pressed');
},
),
SizedBox(height: 20),
// 使用Bones UI Bootstrap的卡片组件
BonesCard(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Text('Card Title', style: TextStyle(fontSize: 20)),
SizedBox(height: 10),
Text('This is a description inside a card.', style: TextStyle(fontSize: 16)),
],
),
),
],
),
),
),
);
}
}
解释
-
导入库:
import 'package:bones_ui_bootstrap/bones_ui_bootstrap.dart';
-
BonesButton:
- 这是一个自定义的按钮组件,你可以设置按钮的文本、颜色和点击事件。
BonesButton( text: 'Primary Button', color: Colors.blue, onPressed: () { print('Primary Button Pressed'); }, ),
-
BonesTextField:
- 这是一个自定义的输入框组件,你可以设置标签、前缀图标和后缀图标,以及后缀图标的点击事件。
BonesTextField( label: 'Email', prefixIcon: Icons.email, suffixIcon: Icons.visibility, onSuffixIconPressed: () { print('Suffix Icon Pressed'); }, ),
-
BonesCard:
- 这是一个自定义的卡片组件,你可以在其中放置任何子组件,比如文本、图片等。
BonesCard( child: Column( mainAxisAlignment: MainAxisAlignment.center, children: <Widget>[ Text('Card Title', style: TextStyle(fontSize: 20)), SizedBox(height: 10), Text('This is a description inside a card.', style: TextStyle(fontSize: 16)), ], ), ),
这些示例展示了如何使用bones_ui_bootstrap
中的一些基础组件。根据你的需求,你可以查阅bones_ui_bootstrap
的文档以获取更多组件和详细用法。