Flutter UI组件库插件bones_ui_bootstrap的使用

发布于 1周前 作者 zlyuanteng 来自 Flutter

Flutter UI组件库插件bones_ui_bootstrap的使用

Bones_UI Bootstrap

pub package Null Safety Dart CI GitHub Tag New Commits Last Commits Pull Requests Code size License

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>: &nbsp;',
        BootstrapIcons.allIcons
            .sublist(0, 15)
            .map((name) => BootstrapIcons.svgIconElement(name,
                width: 20, style: 'margin: 2px 4px'))
            .toList(),
        ' ...',
        '<hr>',
        '<b>BSDateRangePicker</b>: &nbsp;',
        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

1 回复

更多关于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)),
                  ],
                ),
              ),
            ],
          ),
        ),
      ),
    );
  }
}

解释

  1. 导入库

    import 'package:bones_ui_bootstrap/bones_ui_bootstrap.dart';
    
  2. BonesButton

    • 这是一个自定义的按钮组件,你可以设置按钮的文本、颜色和点击事件。
    BonesButton(
      text: 'Primary Button',
      color: Colors.blue,
      onPressed: () {
        print('Primary Button Pressed');
      },
    ),
    
  3. BonesTextField

    • 这是一个自定义的输入框组件,你可以设置标签、前缀图标和后缀图标,以及后缀图标的点击事件。
    BonesTextField(
      label: 'Email',
      prefixIcon: Icons.email,
      suffixIcon: Icons.visibility,
      onSuffixIconPressed: () {
        print('Suffix Icon Pressed');
      },
    ),
    
  4. 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的文档以获取更多组件和详细用法。

回到顶部