Flutter形状裁剪插件convex的使用

Flutter形状裁剪插件convex的使用

convex 插件提供了一些方便的扩展工具,用于在Dart库中进行类型转换。本指南将介绍如何使用这些功能。

类型转换

快速在不同类型的之间转换
import "package:convex/convex.dart";

void main() {
    // 私钥字符串
    final privateKey = "0x4646464646464646464646464646464646464646464646464646464646464646";
    
    // 将私钥字符串转换为BigInt
    print(privateKey.toBigInt());
    // 输出:31786063712204445802548897845522170783250584025862115618674630904133015979590
    
    // 将私钥字符串转换为字节列表
    print(privateKey.toBytes());
    // 输出:[52, 54, 52, 54, 52, 54, ..., 54]

    // 将BigInt转换为字节列表
    final privateKeyBigInt = BigInt.from(42);
    print(privateKeyBigInt.toBytes());
    // 输出:[16, 146]

    // 将字节列表转换为BigInt
    final privateKeyBytes = Uint8List.fromList([16, 146]);
    print(privateKeyBytes.toBigInt());
    // 输出:4242
}
验证十六进制字符串
import "package:convex/convex.dart";

void main() {
    // 十六进制私钥字符串
    final privateKeyA = "0x4646464646464646464646464646464646464646464646464646464646464646";
    
    // 验证是否为有效的十六进制字符串
    print(privateKeyA.isHex());
    // 输出:true

    // 非十六进制字符串
    final privateKeyB = "902MIsam)pp";
    
    // 验证是否为有效的十六进制字符串
    print(privateKeyB.isHex());
    // 输出:false
}

完整示例Demo

下面是一个完整的示例代码,展示了如何使用 convex 插件进行类型转换和验证。

example/example.dart

import "dart:typed_data";

import "package:convex/convex.dart";

void main() {
    // 私钥字符串
    final privateKey = "0x4646464646464646464646464646464646464646464646464646464646464646";
    
    // 将私钥字符串转换为BigInt
    print("私钥字符串转BigInt:");
    print(privateKey.toBigInt());
    // 输出:31786063712204445802548897845522170783250584025862115618674630904133015979590
    
    // 将私钥字符串转换为字节列表
    print("私钥字符串转字节列表:");
    print(privateKey.toBytes());
    // 输出:[52, 54, 52, 54, 52, 54, ..., 54]

    // 将BigInt转换为字节列表
    print("BigInt转字节列表:");
    final privateKeyBigInt = BigInt.from(42);
    print(privateKeyBigInt.toBytes());
    // 输出:[16, 146]

    // 将字节列表转换为BigInt
    print("字节列表转BigInt:");
    final privateKeyBytes = Uint8List.fromList([16, 146]);
    print(privateKeyBytes.toBigInt());
    // 输出:4242

    // 验证十六进制字符串
    print("验证十六进制字符串:");
    final privateKeyA = "0x4646464646464646464646464646464646464646464646464646464646464646";
    print(privateKeyA.isHex());
    // 输出:true

    // 非十六进制字符串
    final privateKeyB = "902MIsam)pp";
    print(privateKeyB.isHex());
    // 输出:false
}

更多关于Flutter形状裁剪插件convex的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter形状裁剪插件convex的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


convex_bottom_bar 是一个用于 Flutter 的插件,它提供了一个漂亮且可定制的底部导航栏,支持凸起的形状(Convex Shape)。这个插件可以帮助你轻松地实现类似 Material Design 中的凸起按钮效果,并且支持多种形状和自定义选项。

安装

首先,你需要在 pubspec.yaml 文件中添加 convex_bottom_bar 插件的依赖:

dependencies:
  flutter:
    sdk: flutter
  convex_bottom_bar: ^latest_version

然后运行 flutter pub get 来安装依赖。

基本用法

以下是一个简单的示例,展示了如何使用 convex_bottom_bar 插件:

import 'package:flutter/material.dart';
import 'package:convex_bottom_bar/convex_bottom_bar.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Convex Bottom Bar Example',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: MyHomePage(),
    );
  }
}

class MyHomePage extends StatefulWidget {
  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  int _selectedIndex = 0;

  final List<Widget> _pages = [
    Center(child: Text('Home Page')),
    Center(child: Text('Search Page')),
    Center(child: Text('Favorites Page')),
    Center(child: Text('Profile Page')),
  ];

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Convex Bottom Bar Example'),
      ),
      body: _pages[_selectedIndex],
      bottomNavigationBar: ConvexAppBar(
        items: [
          TabItem(icon: Icons.home, title: 'Home'),
          TabItem(icon: Icons.search, title: 'Search'),
          TabItem(icon: Icons.favorite, title: 'Favorites'),
          TabItem(icon: Icons.person, title: 'Profile'),
        ],
        initialActiveIndex: _selectedIndex,
        onTap: (int index) {
          setState(() {
            _selectedIndex = index;
          });
        },
      ),
    );
  }
}

主要特性

  1. 多种形状convex_bottom_bar 支持多种形状,包括凸起、凹陷、扁平、圆形等。
  2. 自定义颜色:你可以自定义导航栏的背景色、选中和未选中项的颜色。
  3. 动画效果:导航栏支持平滑的动画效果,提升用户体验。
  4. 图标和文字:你可以同时使用图标和文字来表示导航项。

自定义形状

你可以通过 style 属性来自定义底部导航栏的形状。以下是一些常见的形状选项:

  • ConvexAppBarStyle.react
  • ConvexAppBarStyle.fixed
  • ConvexAppBarStyle.flip
  • ConvexAppBarStyle.titled
bottomNavigationBar: ConvexAppBar(
  style: ConvexAppBarStyle.react,
  items: [
    // Tab items
  ],
  initialActiveIndex: _selectedIndex,
  onTap: (int index) {
    setState(() {
      _selectedIndex = index;
    });
  },
),

自定义颜色

你可以通过 backgroundColoractiveColorcolor 属性来自定义导航栏的颜色。

bottomNavigationBar: ConvexAppBar(
  backgroundColor: Colors.deepPurple,
  activeColor: Colors.white,
  color: Colors.white70,
  items: [
    // Tab items
  ],
  initialActiveIndex: _selectedIndex,
  onTap: (int index) {
    setState(() {
      _selectedIndex = index;
    });
  },
),
回到顶部