Flutter搜索功能插件simple_search_bar的使用

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

Flutter搜索功能插件simple_search_bar的使用

simple_search_bar 是一个非常简单且实用的搜索栏插件。它可以帮助开发者快速实现搜索功能,并与现有的 AppBar 集成。


使用步骤

以下是使用 simple_search_bar 插件的基本步骤:

1. 添加依赖

在项目的 pubspec.yaml 文件中添加以下依赖:

dependencies:
  simple_search_bar: ^版本号

然后运行以下命令安装依赖:

flutter pub get

2. 创建搜索栏

接下来,我们通过一个完整的示例展示如何使用 simple_search_bar 插件。

示例代码

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

// 定义一个控制器来管理搜索状态
class MySearchBar extends StatelessWidget {
  final AppBarController appBarController = AppBarController();

  [@override](/user/override)
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: SearchAppBar(
        // 设置主颜色
        primary: Theme.of(context).primaryColor,
        appBarController: appBarController,
        // 自动激活搜索模式
        autoSelected: true,
        // 设置搜索提示文字
        searchHint: "在这里搜索...",
        // 主文字颜色
        mainTextColor: Colors.white,
        // 搜索框内容变化时的回调函数
        onChange: (String value) {
          // 在这里处理搜索逻辑,例如过滤列表
          print("当前输入值: $value");
        },
        // 搜索模式未激活时的默认 AppBar
        mainAppBar: AppBar(
          title: Text("我的应用标题"),
          actions: [
            // 点击图标切换到搜索模式
            InkWell(
              child: Icon(Icons.search),
              onTap: () {
                // 切换到搜索模式
                appBarController.stream.add(true);
              },
            ),
          ],
        ),
      ),
      body: Center(
        child: Text("搜索页面内容"),
      ),
    );
  }
}

3. 运行效果

运行上述代码后,您将看到一个带有搜索功能的 AppBar。点击搜索图标或直接激活搜索模式后,搜索框会显示出来,用户可以输入关键字进行搜索。


关键点解析

  1. appBarController 控制器
    appBarController 是一个核心组件,用于管理搜索模式的状态。通过 stream.add(true) 可以切换到搜索模式,而 false 则隐藏搜索框。

  2. onChange 回调函数
    当用户输入内容时,onChange 回调函数会被触发。您可以在此处实现搜索逻辑,例如过滤数据列表。

  3. 自定义样式
    通过设置 primarymainTextColor 等属性,您可以轻松定制搜索栏的外观。


完整示例代码

以下是完整的示例代码,您可以直接复制并在项目中运行:

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

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

class MyApp extends StatelessWidget {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      home: MySearchBar(),
    );
  }
}

class MySearchBar extends StatelessWidget {
  final AppBarController appBarController = AppBarController();

  [@override](/user/override)
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: SearchAppBar(
        primary: Theme.of(context).primaryColor,
        appBarController: appBarController,
        autoSelected: true,
        searchHint: "在这里搜索...",
        mainTextColor: Colors.white,
        onChange: (String value) {
          print("当前输入值: $value");
        },
        mainAppBar: AppBar(
          title: Text("我的应用标题"),
          actions: [
            InkWell(
              child: Icon(Icons.search),
              onTap: () {
                appBarController.stream.add(true);
              },
            ),
          ],
        ),
      ),
      body: Center(
        child: Text("搜索页面内容"),
      ),
    );
  }
}

更多关于Flutter搜索功能插件simple_search_bar的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter搜索功能插件simple_search_bar的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


simple_search_bar 是一个用于 Flutter 的简单搜索栏插件,它可以帮助你快速实现搜索功能。以下是使用 simple_search_bar 插件的基本步骤:

1. 添加依赖

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

dependencies:
  flutter:
    sdk: flutter
  simple_search_bar: ^1.0.0  # 请确保使用最新版本

然后运行 flutter pub get 来获取依赖。

2. 导入包

在你的 Dart 文件中导入 simple_search_bar 包:

import 'package:simple_search_bar/simple_search_bar.dart';

3. 使用 SimpleSearchBar

SimpleSearchBar 是一个简单的搜索栏组件,你可以将它添加到你的应用中。以下是一个简单的示例:

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

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

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Simple Search Bar Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: SearchBarExample(),
    );
  }
}

class SearchBarExample extends StatefulWidget {
  @override
  _SearchBarExampleState createState() => _SearchBarExampleState();
}

class _SearchBarExampleState extends State<SearchBarExample> {
  final AppBarController appBarController = AppBarController();
  String searchQuery = '';

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: SimpleSearchBar(
        controller: appBarController,
        onSearchChanged: (value) {
          setState(() {
            searchQuery = value;
          });
        },
        onSearchSubmit: (value) {
          print("Submitted: $value");
        },
      ),
      body: Center(
        child: Text('Search Query: $searchQuery'),
      ),
    );
  }
}

4. 解释代码

  • AppBarController: 这是 SimpleSearchBar 的控制器,用于管理搜索栏的状态。
  • onSearchChanged: 当搜索栏中的文本发生变化时,这个回调函数会被调用。你可以在这里更新 UI 或过滤数据。
  • onSearchSubmit: 当用户按下键盘上的“搜索”按钮时,这个回调函数会被调用。

5. 自定义搜索栏

你可以通过传递不同的参数来自定义 SimpleSearchBar 的外观和行为。例如,你可以设置提示文本、图标、背景颜色等。

SimpleSearchBar(
  controller: appBarController,
  onSearchChanged: (value) {
    setState(() {
      searchQuery = value;
    });
  },
  onSearchSubmit: (value) {
    print("Submitted: $value");
  },
  hintText: 'Search...',
  icon: Icons.search,
  backgroundColor: Colors.blue,
  elevation: 5.0,
)
回到顶部
AI 助手
你好,我是IT营的 AI 助手
您可以尝试点击下方的快捷入口开启体验!