Flutter底部弹出菜单按钮插件st_bottom_sheet_button的使用

Flutter底部弹出菜单按钮插件st_bottom_sheet_button的使用

特性

  • 集成简单,仅需几行代码。
  • 按钮和弹出菜单的外观高度可定制。
  • 支持在弹出菜单中使用自定义小部件。
  • 可配置弹出菜单的大小和行为。

开始使用

要使用此插件,在pubspec.yaml文件中添加st_bottom_sheet_button作为依赖项。

使用方法

首先,在你的Flutter应用中导入该包:

import 'package:st_bottom_modal_sheet/st_bottom_modal_sheet.dart';

然后使用该组件:

STBottomSheetButton(
  // 设置弹出菜单的背景颜色
  sheetBackgroundColor: Colors.white,
  // 设置弹出菜单的高度
  contentHeight: 150,
  // 定义弹出菜单的内容
  content: Column(
    children: [
      // 添加一个宽度为全屏的按钮
      SizedBox(
        width: double.infinity,
        child: ElevatedButton(
          // 设置按钮样式
          style: ElevatedButton.styleFrom(
            shape: RoundedRectangleBorder(
              borderRadius: BorderRadius.circular(10),
            ),
            backgroundColor: Colors.red,
            foregroundColor: Colors.white,
          ),
          onPressed: () {}, // 点击事件
          child: const Text("注销当前设备"),
        ),
      ),
      // 添加另一个宽度为全屏的按钮
      SizedBox(
        width: double.infinity,
        child: ElevatedButton(
          // 设置按钮样式
          style: ElevatedButton.styleFrom(
            shape: RoundedRectangleBorder(
              borderRadius: BorderRadius.circular(10),
            ),
            backgroundColor: Colors.black,
            foregroundColor: Colors.white,
          ),
          onPressed: () {}, // 点击事件
          child: const Text("注销所有设备"),
        ),
      ),
    ],
  ),
  // 设置触发按钮的文本
  child: const Text(
    "注销",
    style: TextStyle(color: Colors.white, fontSize: 20),
  ),
);

示例代码

import 'package:flutter/material.dart';
import 'package:st_bottom_modal_sheet/st_bottom_sheet_button.dart';

void main() {
  runApp(const MainApp());
}

class MainApp extends StatelessWidget {
  const MainApp({super.key});

  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      debugShowCheckedModeBanner: false,
      home: Scaffold(
        body: Center(
          child: STBottomSheetButton(
            // 设置弹出菜单的背景颜色
            sheetBackgroundColor: Colors.white,
            // 设置弹出菜单的高度
            contentHeight: 150,
            // 定义弹出菜单的内容
            content: Column(
              children: [
                // 添加一个宽度为全屏的按钮
                SizedBox(
                  width: double.infinity,
                  child: ElevatedButton(
                    // 设置按钮样式
                    style: ElevatedButton.styleFrom(
                      shape: RoundedRectangleBorder(
                        borderRadius: BorderRadius.circular(10),
                      ),
                      backgroundColor: Colors.red,
                      foregroundColor: Colors.white,
                    ),
                    onPressed: () {}, // 点击事件
                    child: const Text("注销当前设备"),
                  ),
                ),
                // 添加另一个宽度为全屏的按钮
                SizedBox(
                  width: double.infinity,
                  child: ElevatedButton(
                    // 设置按钮样式
                    style: ElevatedButton.styleFrom(
                      shape: RoundedRectangleBorder(
                        borderRadius: BorderRadius.circular(10),
                      ),
                      backgroundColor: Colors.black,
                      foregroundColor: Colors.white,
                    ),
                    onPressed: () {}, // 点击事件
                    child: const Text("注销所有设备"),
                  ),
                ),
              ],
            ),
            // 设置触发按钮的文本
            child: const Text(
              "注销",
              style: TextStyle(color: Colors.white, fontSize: 20),
            ),
          ),
        ),
      ),
    );
  }
}

更多关于Flutter底部弹出菜单按钮插件st_bottom_sheet_button的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter底部弹出菜单按钮插件st_bottom_sheet_button的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


st_bottom_sheet_button 是一个 Flutter 插件,用于在应用程序底部弹出菜单按钮。它提供了一个简单的方式来创建和显示底部弹出菜单,并且具有自定义样式和行为的灵活性。

以下是使用 st_bottom_sheet_button 插件的步骤:

1. 添加依赖

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

dependencies:
  flutter:
    sdk: flutter
  st_bottom_sheet_button: ^latest_version

运行 flutter pub get 来获取依赖。

2. 导入插件

在你的 Dart 文件中导入 st_bottom_sheet_button 插件。

import 'package:st_bottom_sheet_button/st_bottom_sheet_button.dart';

3. 使用 STBottomSheetButton

你可以使用 STBottomSheetButton 来创建一个底部弹出菜单按钮。以下是一个简单的示例:

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

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

class MyApp extends StatelessWidget {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text('Bottom Sheet Button Example'),
        ),
        body: Center(
          child: STBottomSheetButton(
            buttonText: 'Show Bottom Sheet',
            buttonStyle: ButtonStyle(
              backgroundColor: MaterialStateProperty.all(Colors.blue),
              padding: MaterialStateProperty.all(EdgeInsets.all(16.0)),
              shape: MaterialStateProperty.all(
                RoundedRectangleBorder(
                  borderRadius: BorderRadius.circular(8.0),
                ),
              ),
            ),
            onPressed: (context) {
              // 在这里定义底部弹出菜单的内容
              showModalBottomSheet(
                context: context,
                builder: (BuildContext context) {
                  return Container(
                    padding: EdgeInsets.all(16.0),
                    child: Column(
                      mainAxisSize: MainAxisSize.min,
                      children: <Widget>[
                        ListTile(
                          leading: Icon(Icons.share),
                          title: Text('Share'),
                          onTap: () {
                            Navigator.pop(context);
                          },
                        ),
                        ListTile(
                          leading: Icon(Icons.copy),
                          title: Text('Copy'),
                          onTap: () {
                            Navigator.pop(context);
                          },
                        ),
                        ListTile(
                          leading: Icon(Icons.delete),
                          title: Text('Delete'),
                          onTap: () {
                            Navigator.pop(context);
                          },
                        ),
                      ],
                    ),
                  );
                },
              );
            },
          ),
        ),
      ),
    );
  }
}
回到顶部