Flutter 枚举值enum和int互相转化总结

 更新时间:2023年02月17日 14:08:43   作者:SoaringHeart  
这篇文章主要为大家介绍了Flutter 枚举值enum和int互相转化总结分析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

一、需求来源

工作中偶尔会用到枚举值和 int 的互相转化,今天总结一下;

二、搞清楚 Flutter 枚举属性和方法

三、实现需求(以 PageView 滚动方式为例)

枚举值转 int:在当前索引值后加 .index 即可(默认从 0 开始);

int 转枚举值:需要扩展枚举方法实现,实现如下;

定义枚举 PageViewScrollType

/// PageView 滚动方式
enum PageViewScrollType {
  /// 整屏滑动
  full,
  /// 拖拽滑动
  drag,
  /// 禁用滑动
  none,
}
extension PageViewScrollType_IntExt on int{
  /// int 转枚举
  PageViewScrollType? toPageViewScrollType([bool isClamp = true]){
    final allCases = PageViewScrollType.values;
    if (!isClamp) {
      if (this < 0 || this > allCases.length - 1) {
        return null;
      }
      return allCases[this];
    }
    final index = this.clamp(0, allCases.length - 1);
    return allCases[index];
  }
  /// int 转枚举
  PageViewScrollType get pageViewScrollType{
    final allCases = PageViewScrollType.values;
    // final index = this.clamp(0, allCases.length - 1);
    // return allCases[index];
    return this.toPageViewScrollType(true) ?? allCases.first;
  }
}

最后

如此就实现了 枚举值和 int的互相转化,打印如下:

print("枚举值索引: ${PageViewScrollType.full.index}");
print("枚举值字符串: ${PageViewScrollType.drag.toString()}");
print("枚举集合: ${PageViewScrollType.values}");
print("int 转枚举: ${0.toPageViewScrollType()}");

//枚举值索引: 0

//枚举值字符串: PageViewScrollType.drag

//枚举集合: [ PageViewScrollType.full, PageViewScrollType.drag, PageViewScrollType.none ]

//int 转枚举: PageViewScrollType.full

以上就是Flutter 枚举值enum和int互相转化总结的详细内容,更多关于Flutter枚举值enum int互相转化的资料请关注脚本之家其它相关文章!

相关文章

  • Android中对xml文件解析的3种方式总结

    Android中对xml文件解析的3种方式总结

    这篇文章主要给大家介绍了关于Android中对xml文件解析的3种方式,分别是 Dom 、 SAX 和 dom4j,文中通过示例代码介绍的非常详细,需要的朋友可以参考借鉴,下面随着小编来一起学习学习吧。
    2018-02-02
  • android使用多线程更新ui示例分享

    android使用多线程更新ui示例分享

    在Android平台中多线程应用很广泛,在UI更新、游戏开发和耗时处理(网络通信等)等方面都需要多线程,下面是一个在线程中更新UI的代码
    2014-01-01
  • 一款Android APK的结构构成解析

    一款Android APK的结构构成解析

    本篇文章介绍了我在学习过程中对于Android 程序的理解总结,刨析了apk的组成与产生过程,通读本篇对大家的学习或工作具有一定的价值,需要的朋友可以参考下
    2021-10-10
  • 浅析android中的线程封装

    浅析android中的线程封装

    下面我就简单的说一下android对线程的c++封装。需要的朋友可以过来参考下。希望对大家有所帮助
    2013-09-09
  • 详解Android使用CoordinatorLayout+AppBarLayout+CollapsingToolbarLayou实现手指滑动效果

    详解Android使用CoordinatorLayout+AppBarLayout+CollapsingToolbarL

    这篇文章主要为大家详细介绍了Android使用CoordinatorLayout+AppBarLayout+CollapsingToolbarLayou实现手指滑动效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-05-05
  • Android RadioButton单选框的使用方法

    Android RadioButton单选框的使用方法

    本篇文章小编为大家介绍,Android RadioButton单选框的使用方法。需要的朋友参考下
    2013-04-04
  • Android调用系统自带浏览器打开网页的实现方法

    Android调用系统自带浏览器打开网页的实现方法

    在Android中可以调用自带的浏览器,或者指定一个浏览器来打开一个链接。只需要传入一个uri,可以是链接地址。接下来通过本文给大家分享android 自带浏览器打开网页的实现方法,需要的朋友参考下吧
    2017-09-09
  • Android中利用SurfaceView制作抽奖转盘的全流程攻略

    Android中利用SurfaceView制作抽奖转盘的全流程攻略

    这篇文章主要介绍了Android中利用SurfaceView制作抽奖转盘的全流程,从图案的绘制到转盘的控制再到布局,真的非常全面,需要的朋友可以参考下
    2016-04-04
  • Android Framework原理Binder驱动源码解析

    Android Framework原理Binder驱动源码解析

    这篇文章主要为大家介绍了Android Framework原理Binder驱动源码解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-01-01
  • android使用Jsoup 抓取页面的数据

    android使用Jsoup 抓取页面的数据

    本篇文章主要介绍了android使用Jsoup 抓取页面的数据,jsoup 是一款Java的HTML解析器,有需要的朋友可以了解一下。
    2016-11-11

最新评论