Flutter 初识:数据表格和卡片

news2024/11/15 15:55:38

Flutter数据表格和卡片小结

    • Table
      • 属性解析
      • 示例
      • TableRow
        • 属性解析
      • TableCell
        • 属性解析
    • DataTable
      • 属性解析
      • 示例
      • DataColumn
        • 属性解析
        • 示例
      • DataRow
        • 属性解析
        • 示例
      • DataCell
        • 属性解析
    • Card
      • 属性解析
      • 示例

Table

Table 是 Flutter 中用于显示表格布局的小部件。它允许你定义行和列,并为每个单元格指定内容。

属性解析

Table({
    super.key,
    this.children = const <TableRow>[],
    this.columnWidths,
    this.defaultColumnWidth = const FlexColumnWidth(),
    this.textDirection,
    this.border,
    this.defaultVerticalAlignment = TableCellVerticalAlignment.top,
    this.textBaseline, // NO DEFAULT: we don't know what the text's baseline should be
  }) 
  • children (List): 表格的行列表,每一行由多个 TableCell 组成。
  • columnWidths (Map<int, TableColumnWidth>?): 每列的宽度,可以通过列索引指定不同的宽度类型。
  • defaultColumnWidth (TableColumnWidth): 默认的列宽,默认为 FlexColumnWidth(),即均匀分配空间。
  • textDirection (TextDirection?): 文本方向,用于处理文本对齐方式。
  • border (TableBorder?): 表格的边框样式。
  • defaultVerticalAlignment (TableCellVerticalAlignment): 单元格的垂直对齐方式,默认为 TableCellVerticalAlignment.top。
  • textBaseline (TextBaseline?): 基线对齐,用于确保文本基线在同一行内对齐。

示例

class MyHomePage extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: Scaffold(
        appBar: AppBar(
          title: Text('Table Example'),
        ),
        body: Center(
          child: Padding(
            padding: const EdgeInsets.all(16.0),
            child: Table(
              border: TableBorder.all(color: Colors.black),
              defaultColumnWidth: FixedColumnWidth(100.0),
              defaultVerticalAlignment: TableCellVerticalAlignment.middle,
              children: [
                TableRow(children: [
                  TableCell(child: Center(child: Text('Header 1'))),
                  TableCell(child: Center(child: Text('Header 2'))),
                  TableCell(child: Center(child: Text('Header 3'))),
                ]),
                TableRow(children: [
                  TableCell(child: Center(child: Text('Row 1 - Cell 1'))),
                  TableCell(child: Center(child: Text('Row 1 - Cell 2'))),
                  TableCell(child: Center(child: Text('Row 1 - Cell 3'))),
                ]),
                TableRow(children: [
                  TableCell(child: Center(child: Text('Row 2 - Cell 1'))),
                  TableCell(child: Center(child: Text('Row 2 - Cell 2'))),
                  TableCell(child: Center(child: Text('Row 2 - Cell 3'))),
                ]),
              ],
            ),
          ),
        ),
      ),
    );
  }
}

在这里插入图片描述

TableRow

TableRow 是 Flutter 中用于定义 Table 的行的小部件。它包含了行的装饰和子小部件

属性解析
TableRow({ this.key, this.decoration, this.children = const <Widget>[]})
  • key (LocalKey?): 唯一标识符,用于在树中标识该行。
  • decoration (Decoration?): 行的装饰,如背景颜色、边框等。
  • children (List): 行中的单元格(即子小部件),默认为空列表。

TableCell

TableCell 是 Flutter 中用于定义 TableRow 中单元格的小部件。它包含了单元格的对齐方式和显示内容。

属性解析
const TableCell({
    super.key,
    this.verticalAlignment,
    required super.child,
  })
  • key (LocalKey?): 唯一标识符,用于在树中标识该单元格。
  • verticalAlignment (TableCellVerticalAlignment?): 单元格的垂直对齐方式,可以是 top、middle、bottom 或 baseline 等。
  • child (Widget): 单元格中显示的小部件,通常是一个文本小部件。

 
 

DataTable

DataTable 是 Flutter 中用于展示数据表格的小部件,通常用于显示大量结构化的数据。

属性解析

DataTable({
    super.key,
    required this.columns,
    this.sortColumnIndex,
    this.sortAscending = true,
    this.onSelectAll,
    this.decoration,
    this.dataRowColor,
    @Deprecated(
      'Migrate to use dataRowMinHeight and dataRowMaxHeight instead. '
      'This feature was deprecated after v3.7.0-5.0.pre.',
    )
    double? dataRowHeight,
    double? dataRowMinHeight,
    double? dataRowMaxHeight,
    this.dataTextStyle,
    this.headingRowColor,
    this.headingRowHeight,
    this.headingTextStyle,
    this.horizontalMargin,
    this.columnSpacing,
    this.showCheckboxColumn = true,
    this.showBottomBorder = false,
    this.dividerThickness,
    required this.rows,
    this.checkboxHorizontalMargin,
    this.border,
    this.clipBehavior = Clip.none,
  })
  • columns (List): 表头列的配置,每个 DataColumn 定义一列的标题和排序行为等。
  • sortColumnIndex (int?): 当前排序列的索引。
  • sortAscending (bool): 是否按升序排序,默认为 true。
  • onSelectAll (Function(bool?)?): “全选” 复选框的回调。
  • decoration (Decoration?): 表格的装饰,如背景颜色、边框等。
  • dataRowColor (MaterialStateProperty<Color?>?): 数据行的背景颜色。
  • dataRowMinHeight (double?): 数据行的最小高度。
  • dataRowMaxHeight (double?): 数据行的最大高度。
  • dataTextStyle (TextStyle?): 数据单元格的文本样式。
  • headingRowColor (MaterialStateProperty<Color?>?): 表头行的背景颜色。
  • headingRowHeight (double?): 表头行的高度。
  • headingTextStyle (TextStyle?): 表头单元格的文本样式。
  • horizontalMargin (double?): 表格水平方向上的间距。
  • columnSpacing (double?): 列之间的间距。
  • showCheckboxColumn (bool): 是否显示选择框列,默认为 true。
  • showBottomBorder (bool): 是否显示底部边框,默认为 false。
  • dividerThickness (double?): 分隔线的厚度。
  • rows (List): 数据行的配置,每个 DataRow 包含多个 DataCell。
  • checkboxHorizontalMargin (double?): 复选框的水平间距。
  • border (TableBorder?): 表格的边框样式。
  • clipBehavior (Clip): 设置裁剪行为,默认为 Clip.none。

示例

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

class _MyHomePageState extends State<MyHomePage> {
  bool _sortAscending = true;
  int? _sortColumnIndex;

  List<User> _users = [
    User('Alice', 25),
    User('Bob', 30),
    User('Charlie', 35),
  ];

  void _sort<T>(Comparable<T> Function(User user) getField, int columnIndex,
      bool ascending) {
    _users.sort((a, b) {
      if (!ascending) {
        final User c = a;
        a = b;
        b = c;
      }
      final Comparable<T> aValue = getField(a);
      final Comparable<T> bValue = getField(b);
      return Comparable.compare(aValue, bValue);
    });
    setState(() {
      _sortColumnIndex = columnIndex;
      _sortAscending = ascending;
    });
  }

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: Scaffold(
        appBar: AppBar(
          title: Text('DataTable Example'),
        ),
        body: SingleChildScrollView(
          child: DataTable(
            sortColumnIndex: _sortColumnIndex,
            sortAscending: _sortAscending,
            columns: [
              DataColumn(
                label: Text('Name'),
                onSort: (int columnIndex, bool ascending) => _sort<String>(
                    (User user) => user.name, columnIndex, ascending),
              ),
              DataColumn(
                label: Text('Age'),
                numeric: true,
                onSort: (int columnIndex, bool ascending) =>
                    _sort<num>((User user) => user.age, columnIndex, ascending),
              ),
            ],
            rows: _users.map((User user) {
              return DataRow(cells: [
                DataCell(Text(user.name)),
                DataCell(Text('${user.age}')),
              ]);
            }).toList(),
          ),
        ),
      ),
    );
  }
}

class User {
  User(this.name, this.age);

  final String name;
  final int age;
}

在这里插入图片描述

DataColumn

DataColumn 是 Flutter 中用于定义 DataTable 表头列的小部件。它包含了列的标题、提示信息、是否为数字列以及排序等功能。

属性解析
const DataColumn({
    required this.label,
    this.tooltip,
    this.numeric = false,
    this.onSort,
    this.mouseCursor,
  })
  • label (Widget): 用于显示列标题的小部件,通常是一个文本小部件。
  • tooltip (String?): 当用户长按列标题时显示的提示信息。
  • numeric (bool): 指定该列是否为数字列,默认为 false。
  • onSort (Function(int columnIndex, bool ascending)?): 排序回调函数,当用户点击列标题时调用,用于处理数据的排序逻辑。
  • mouseCursor (MouseCursor?): 鼠标悬停在列标题上时显示的光标样式。
示例
class MyApp extends StatefulWidget {
  @override
  _MyAppState createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  bool _sortAscending = true;
  int? _sortColumnIndex;

  List<User> _users = [
    User('Alice', 25),
    User('Bob', 30),
    User('Charlie', 35),
  ];

  void _sort<T>(Comparable<T> Function(User user) getField, int columnIndex, bool ascending) {
    _users.sort((a, b) {
      if (!ascending) {
        final User c = a;
        a = b;
        b = c;
      }
      final Comparable<T> aValue = getField(a);
      final Comparable<T> bValue = getField(b);
      return Comparable.compare(aValue, bValue);
    });
    setState(() {
      _sortColumnIndex = columnIndex;
      _sortAscending = ascending;
    });
  }

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: Scaffold(
        appBar: AppBar(
          title: Text('DataTable Example'),
        ),
        body: SingleChildScrollView(
          child: DataTable(
            sortColumnIndex: _sortColumnIndex,
            sortAscending: _sortAscending,
            columns: [
              DataColumn(
                label: Text('Name'),
                tooltip: 'User\'s name',
                onSort: (int columnIndex, bool ascending) => _sort<String>((User user) => user.name, columnIndex, ascending),
              ),
              DataColumn(
                label: Text('Age'),
                numeric: true,
                tooltip: 'User\'s age',
                onSort: (int columnIndex, bool ascending) => _sort<num>((User user) => user.age, columnIndex, ascending),
              ),
            ],
            rows: _users.map((User user) {
              return DataRow(cells: [
                DataCell(Text(user.name)),
                DataCell(Text('${user.age}')),
              ]);
            }).toList(),
          ),
        ),
      ),
    );
  }
}

class User {
  User(this.name, this.age);

  final String name;
  final int age;
}

DataRow

DataRow 是 Flutter 中用于定义 DataTable 表格中的一行。它包含了行的单元格、选择状态、长按事件等功能。

属性解析
const DataRow({
    this.key,
    this.selected = false,
    this.onSelectChanged,
    this.onLongPress,
    this.color,
    this.mouseCursor,
    required this.cells,
  })
  • key (LocalKey?): 唯一标识符,用于在树中标识该行。
  • selected (bool): 指定该行是否被选中,默认为 false。
  • onSelectChanged (ValueChanged<bool?>?): 当用户点击行的复选框时调用的回调函数。
  • onLongPress (GestureLongPressCallback?): 当用户长按行时调用的回调函数。
  • color (MaterialStateProperty<Color?>?): 行的背景颜色。
  • mouseCursor (MouseCursor?): 鼠标悬停在行上时显示的光标样式。
  • cells (List): 行中的单元格列表,每个单元格由 DataCell 定义。
示例
class MyApp extends StatefulWidget {
  @override
  _MyAppState createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  bool _sortAscending = true;
  int? _sortColumnIndex;

  List<User> _users = [
    User('Alice', 25),
    User('Bob', 30),
    User('Charlie', 35),
  ];

  void _sort<T>(Comparable<T> Function(User user) getField, int columnIndex, bool ascending) {
    _users.sort((a, b) {
      if (!ascending) {
        final User c = a;
        a = b;
        b = c;
      }
      final Comparable<T> aValue = getField(a);
      final Comparable<T> bValue = getField(b);
      return Comparable.compare(aValue, bValue);
    });
    setState(() {
      _sortColumnIndex = columnIndex;
      _sortAscending = ascending;
    });
  }

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: Scaffold(
        appBar: AppBar(
          title: Text('DataTable Example'),
        ),
        body: SingleChildScrollView(
          child: DataTable(
            sortColumnIndex: _sortColumnIndex,
            sortAscending: _sortAscending,
            columns: [
              DataColumn(
                label: Text('Name'),
                tooltip: 'User\'s name',
                onSort: (int columnIndex, bool ascending) => _sort<String>((User user) => user.name, columnIndex, ascending),
              ),
              DataColumn(
                label: Text('Age'),
                numeric: true,
                tooltip: 'User\'s age',
                onSort: (int columnIndex, bool ascending) => _sort<num>((User user) => user.age, columnIndex, ascending),
              ),
            ],
            rows: _users.map((User user) {
              return DataRow(
                selected: user.selected,
                onSelectChanged: (bool? value) {
                  setState(() {
                    user.selected = value ?? false;
                  });
                },
                cells: [
                  DataCell(Text(user.name)),
                  DataCell(Text('${user.age}')),
                ],
              );
            }).toList(),
          ),
        ),
      ),
    );
  }
}

class User {
  User(this.name, this.age, {this.selected = false});

  final String name;
  final int age;
  bool selected;
}

DataCell

DataCell 是 Flutter 中用于定义 DataRow 中单元格的小部件。它包含了单元格的显示内容、占位符状态、编辑图标以及各种手势事件。

属性解析
const DataCell(
    this.child, {
    this.placeholder = false,
    this.showEditIcon = false,
    this.onTap,
    this.onLongPress,
    this.onTapDown,
    this.onDoubleTap,
    this.onTapCancel,
  })
  • child (Widget): 单元格中显示的小部件,通常是一个文本小部件。
  • placeholder (bool): 指定该单元格是否为占位符,默认为 false。
  • showEditIcon (bool): 是否显示编辑图标,默认为 false。
  • onTap (GestureTapCallback?): 当用户点击单元格时调用的回调函数。
  • onLongPress (GestureLongPressCallback?): 当用户长按单元格时调用的回调函数。
  • onTapDown (GestureTapDownCallback?): 当用户按下单元格时调用的回调函数。
  • onDoubleTap (GestureDoubleTapCallback?): 当用户双击单元格时调用的回调函数。
  • onTapCancel (GestureTapCancelCallback?): 当单元格点击操作被取消时调用的回调函数。

 
 

Card

Card 是 Flutter 中用于创建卡片样式小部件的容器,它通常用于在应用中展示信息块。

属性解析

  const Card({
    super.key,
    this.color,
    this.shadowColor,
    this.surfaceTintColor,
    this.elevation,
    this.shape,
    this.borderOnForeground = true,
    this.margin,
    this.clipBehavior,
    this.child,
    this.semanticContainer = true,
  })
  • color (Color?): 卡片的背景颜色。
  • shadowColor (Color?): 卡片阴影的颜色。
  • surfaceTintColor (Color?): 卡片表面色调颜色。
  • elevation (double?): 卡片的阴影高度。
  • shape (ShapeBorder?): 卡片的形状及边框样式。
  • borderOnForeground (bool): 控制边框是在前景绘制还是背景绘制,默认值为 true。
  • margin (EdgeInsetsGeometry?): 卡片外边距,默认为 EdgeInsets.all(4.0)。
  • clipBehavior (Clip?): 设置裁剪行为。
  • child (Widget?): 卡片的子小部件。
  • semanticContainer (bool): 是否将卡片作为语义容器,默认为 true。

示例

class MyHomePage extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: Scaffold(
        appBar: AppBar(
          title: Text('Card Example'),
        ),
        body: Center(
          child: Card(
            color: Colors.white,
            shadowColor: Colors.grey,
            elevation: 8.0,
            shape: RoundedRectangleBorder(
              borderRadius: BorderRadius.circular(15.0),
            ),
            margin: EdgeInsets.all(16.0),
            child: Padding(
              padding: const EdgeInsets.all(16.0),
              child: Column(
                mainAxisSize: MainAxisSize.min,
                children: <Widget>[
                  ListTile(
                    leading: Icon(Icons.album, size: 50),
                    title: Text('Card Title', style: TextStyle(fontSize: 24)),
                    subtitle:
                        Text('Card Subtitle', style: TextStyle(fontSize: 16)),
                  ),
                  ButtonBar(
                    children: <Widget>[
                      TextButton(
                        child: Text('ACTION 1'),
                        onPressed: () {
                          // Handle the action here
                        },
                      ),
                      TextButton(
                        child: Text('ACTION 2'),
                        onPressed: () {
                          // Handle the action here
                        },
                      ),
                    ],
                  ),
                ],
              ),
            ),
          ),
        ),
      ),
    );
  }
}

在这里插入图片描述
 
 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1967362.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

前端日历插件VCalendar

官网地址 API | VCalendar 1.安装 yarn add v-calendarnext popperjs/core 2.全局引入 mian.js //日历插件 import VCalendar from v-calendar; import v-calendar/style.css;app.use(VCalendar); 3.使用 <div><VCalendar reservationTime expanded borderless…

无涯问知AI PC版发布,星环科技开启个人大模型应用新篇章

5月30-31日&#xff0c;2024向星力未来数据技术峰会期间&#xff0c;星环科技推出无涯问知AI PC版&#xff0c;这是一款专为个人用户设计的大模型应用产品&#xff0c;标志着个人智能应用时代的全面展开。 无涯问知AI PC版基于星环科技先进的大模型技术&#xff0c;可以在配备英…

jenkins获取sonarqube质量门禁结果

前景 在使用 Jenkins 集成 SonarQube 时&#xff0c;获取质量门禁&#xff08;Quality Gate&#xff09;结果非常重要。SonarQube 的质量门禁是一种质量控制机制&#xff0c;用于评估代码质量是否符合预设的标准。以下是获取质量门禁结果的意义和作用&#xff1a; 评估代码质量…

跟张良均老师学大数据人工智能-批量集训营开班中

随着我国大数据和人工智能产业的飞速发展&#xff0c;未来社会对高素质科技人才的需求日益旺盛。为助力广大青少年提前掌握前沿技术&#xff0c;实现自我价值&#xff0c;泰迪智能科技多名优秀老师联合打造暑期大数据人工智能集训营&#xff0c;旨在培养具备创新精神和实战能力…

常见红外协议整理

1.NEC 1.1 信号编码 载波频率&#xff1a;38kHz载波&#xff0c;载波占空比建议位1/3或1/4。 逻辑"0":562.5μs的脉冲burst(约21个周期) 562.5μs的空闲,总时长1.125ms 逻辑"1":562.5μs的脉冲burst(约21个周期) 1.6875ms的空闲,总时长2.25ms 引导…

大模型的一些思考

迄今为止&#xff0c;应该没有人还怀疑大模型的能力吧&#xff1f;但目前大模型实现真正落地&#xff0c;其实还有一段艰难的路要走。 和大模型相关的一些术语 **1. 大模型&#xff1a;**一般指1亿以上参数的模型&#xff0c;但是这个标准一直在升级&#xff0c;目前万亿参数…

树模型详解3-xgboost

回归树&#xff1a; 表达式为T&#xff08;x&#xff09;wq&#xff08;x&#xff09;&#xff0c;意思为&#xff1a;一个样本x&#xff0c;落到树的哪个叶子结点由q&#xff08;x&#xff09;得出&#xff0c;具体叶子结点对应的值由w函数得出 如何构建函数&#xff1a; 运…

智能视频监控在车辆管理与安全预警中的应用挑战

随着公共交通的客货运事业蓬勃发展&#xff0c;车辆保有量逐年增加&#xff0c;交通安全管理形势愈发严峻。为应对超速、疲劳驾驶、两客一危等违规驾驶行为&#xff0c;智能视频监控技术成为提升交通安全管理水平的关键手段。然而&#xff0c;尽管智能视频监控技术在理论上具有…

MATLAB(9)GIS模型

一、介绍 在GIS&#xff08;地理信息系统&#xff09;中&#xff0c;模型的实现可以非常多样化&#xff0c;取决于你想要解决的具体问题。MATLAB作为一个强大的数值计算和可视化工具&#xff0c;可以被用来开发GIS相关的模型&#xff0c;尽管它不是专门为GIS设计的&#xff08…

免费【2024】springboot 大学生二手电子产品交易平台设计与实现

博主介绍&#xff1a;✌CSDN新星计划导师、Java领域优质创作者、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和学生毕业项目实战,高校老师/讲师/同行前辈交流✌ 技术范围&#xff1a;SpringBoot、Vue、SSM、HTML、Jsp、PHP、Nodejs、Python、爬虫、数据可视化…

Python机器学习实战:分类算法之支持向量机-垃圾邮件识别

为了解决特定问题而进行的学习是提高效率的最佳途径。这种方法能够使我们专注于最相关的知识和技能&#xff0c;从而更快地掌握解决问题所需的能力。 目录 支持向量机算法介绍 练习题 Python代码与分析 支持向量机和朴素贝叶斯的联系 支持向量机算法介绍 支持向量机&#…

时尚好看的APPUI设计离不开社交属性

时尚好看的APP UI设计离不开社交属性 艾斯视觉作为ui设计和前端开发从业者&#xff0c;其观点始终认为&#xff1a;移动应用程序&#xff08;APP&#xff09;已成为人们日常生活中不可或缺的一部分。一个时尚好看的APP UI设计不仅能够吸引用户&#xff0c;更能提升用户体验。而…

产品经理必备:8大高效的需求跟踪工具

本文将分享8款主流需求进度跟踪工具&#xff1a;PingCode、Worktile、Teambition、禅道、Tapd、Trello、Wrike、Monday.com。 每个产品经理都面临着如何有效监控项目进展、确保团队与目标同步的问题。选择合适的工具不仅可以减少误会和延误&#xff0c;还能显著提升团队的生产效…

【第六节】python的特殊语法和常用模块

目录 一、特殊语法 1.1 高阶函数 1.2 函数嵌套 1.3 装饰器 二、常用的模块 2.1 time模块 2.1.1 时间的表示方式 2.1.2 time 的使用方式 2.2 datetime 模块 2.2.1 datetime 模块总览 2.2.2 date 类 2.2.3 time 类 2.2.4 datetime 类 2.2.5 timedelta 类 2.3 rand…

轻松应对5W家企业月度排查!这家国企是如何做到的?

国央企的内控合规体系建设一直都是重中之重&#xff0c;今年年初国资委也提到要加强重要领域、重要业务、重要人员和关键环节的内控监督&#xff0c;构建全覆盖内控责任体系。 那么&#xff0c;国央企该如何响应政策号召&#xff0c;快速完善风险合规内控“三位一体”管控体系…

MATLAB(8)深度变化模型

一、前言 在MATLAB中模拟深度变化模型通常依赖于具体的应用场景&#xff0c;比如海洋深度、地下水深度、地形高度变化等。由于“深度变化”可以涉及多种物理过程和数学模型&#xff0c;我将提供一个简化的示例&#xff0c;该示例模拟了一个基于时间变化的深度变化模型&#xff…

nginx常见命令与报错

ps&#xff1a;macOS系统&#xff0c;以下内容是mac电脑&#xff0c;且使用brew安装的&#xff0c;其他慎看&#xff0c;因为安装位置等信息可能会略有不同 1.下载Homebrew /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/…

商家转账到零钱2024最新开通必过攻略

微信支付商家转账到零钱功能申请设置了人工审核的门槛&#xff0c;本意是为了防止没有合规使用场景的商户滥用该功能&#xff0c;但这也让相当多的真实用户被一次次拒之门外。结合过去6年开通此类产品的经验&#xff0c;今天我们就以2024年最新的的商家转账到零钱的开通流程做一…

vmstat 内存排查的大杀器之一

主要作用 vmstat 为linux下提供的一个性能诊断工具。 内存排查方面&#xff0c;可以用它查看&#xff1a; 虚拟内存使用量空闲内存剩余量活跃内存量非活跃内存量缓冲内存使用量缓存内存使用量 硬盘排查方面&#xff0c;可以用它查看&#xff1a; 读/写磁盘总次数读/写磁盘扇…

15.2 zookeeper java client之Zookeeper官方使用(❤❤❤❤)

15.2 zookeeper java client 1. Zookeeper官方1.1 依赖1.2 Zookeeper客户端连接测试1.3 Zookeeper节点操作1.3.1 zooKeeper.create创建节点1.3.2 zooKeeper.exists获取节点详情1.3.3 zooKeeper.getData获取节点数据1.3.4 zooKeeper.getChildren获取节点下所有子节点名称1.3.5 …