A simple and mostly automatic material search bar for flutter

A simple and mostly automatic material search bar for flutter

flutter_search_bar .A simple and mostly automatic material search bar for flutter (dart).

A simple and mostly automatic material search bar for flutter (dart).

Note: use flutter_search_bar and not search_bar -- I own both packages but I'm just a tad bit locked out of search_bar, so it won't be updated.

Screenshots

Normal state (search is not active yet, only title and actions are set, with the only action being a search button)

Normal State

inBar set to false (background white, back button inherited):

inBar false

inBar set to true (background inherited):

inBar true

Usage

A simple usage example:

class _MyHomePageState extends State<MyHomePage> {
  SearchBar searchBar;

  AppBar buildAppBar(BuildContext context) {
    return new AppBar(
      title: new Text('My Home Page'),
      actions: [searchBar.getSearchAction(context)]
    );
  }  

  _MyHomePageState() {
    searchBar = new SearchBar(
      inBar: false,
      setState: setState,
      onSubmitted: print,
      buildDefaultAppBar: buildAppBar
    );
  }

  @override
  Widget build(BuildContext context) {
    return new Scaffold(
      appBar: searchBar.build(context)
    );
  }
}

This will create an AppBar with a search button as its only action, and on press the AppBar will turn white and have a TextField inside, allowing user input. Once the user has input something and pressed the "enter" button on their keyboard, it will close and the value will be printed to the debugger.

SearchBar vs Flutter's showSearch + SearchDelegate

Essentially, this class returns two different app bars based on whether search is active. Colors from the most recently built "default" app bar are used to color the search bar.

I may refer to the two different app bars as default and search. Default is, as may be inferred, the default app bar. It shows up when you open your app, and is the "default state". Once its search button has been pressed, the search app bar appears, where the user can put in input and submit a field.

This documentation may be slightly outdated. It will soon be generated with dartdoc instead of being manual (not really sure why it wasn't that way from the start).

TypeDefs

AppBarCallback

typedef AppBar AppBarCallback(BuildContext context);

This should take BuildContext and return an Appbar.

TextFieldSubmitCallback

typedef void TextFieldSubmitCallback(String value);

This should take the value of the input field and return nothing.

SetStateCallback

typedef void SetStateCallback(fn);

This should take a function and return nothing. Generally, this should just be setState. More below.

Constructor

bool inBar - Whether the search should take place "in the existing search bar", meaning whether it has the same background as the AppBar or a flipped (white) one (which also has a colored back button if necessary). Defaults to true.

bool colorBackButton - Whether the back button in the search bar should be colored, if false it will be Colors.grey.shade400. Defaults to true.

bool closeOnSubmit - Whether the search bar should close once it has been submitted. You should probably keep this on, and it defaults to true anyways.

String hintText - The hint text for the TextField that appears when the search button is pressed. Defaults to just 'Search'.

AppBarCallback buildDefaultAppBar - The function to be called each time the default app bar is built. The colors from the most recent AppBar build will be used for the next search app bar.

TextFieldSubmitCallback onSubmitted - A void callback called when the search bar is submitted.

SetStateCallback setState - This is called every time the State needs to be updated (i.e. when the AppBar changes). You can literally just pass setState to this, unless for some reason you want to do extra stuff each time the AppBar changes.

Properties

In addition to all of the above properties set in the constructor:

bool _isSearching - Whether search is active.

AppBar _defaultAppBar - The last built default app bar.

Methods

getSearchAction

IconButton getSearchAction(BuildContext context) This takes context as an argument, and returns an IconButton suitable for an Action in an AppBar. If you want your SearchBar to actually work, put this inside your buildDefaultAppBarpub method.

build

AppBar build(BuildContext context)

This takes context as an argument, and returns an AppBar based on whether search is active.

Features and bugs

Please file feature requests and bugs at the issue tracker.

Download Details:

Author: ArcticZeroo

Source Code: https://github.com/ArcticZeroo/flutter-search-bar

flutter dart mobile-apps

Bootstrap 5 Complete Course with Examples

Bootstrap 5 Tutorial - Bootstrap 5 Crash Course for Beginners

Nest.JS Tutorial for Beginners

Hello Vue 3: A First Look at Vue 3 and the Composition API

Building a simple Applications with Vue 3

Deno Crash Course: Explore Deno and Create a full REST API with Deno

How to Build a Real-time Chat App with Deno and WebSockets

Convert HTML to Markdown Online

HTML entity encoder decoder Online

Google's Flutter 1.20 stable announced with new features - Navoki

Google has announced new flutter 1.20 stable with many improvements, and features, enabling flutter for Desktop and Web

Top 25 Flutter Mobile App Templates in 2020

Flutter has been booming worldwide from the past few years. While there are many popular mobile app development technologies out there, Flutter has managed to leave its mark in the mobile application development world. In this article, we’ve curated the best Flutter app templates available on the market as of July 2020.

Flutter App Development Trends 2020

As the new decade dawns upon us, a slew of technologies has been making a lot of noise to grab the developers’ attention. While native app development is going strong, the trade winds are now blowing towards going cross-platform.

How To Succeed In Mobile App Wireframe Design?

This article covers everything about mobile app wireframe design: what to do and what not, tools used in designing a mobile or web app wireframe, and more.

What is Flutter and why you should learn it?

Flutter is an open-source UI toolkit for mobile developers, so they can use it to build native-looking Android and iOS applications from the same code base for both platforms. Flutter is also working to make Flutter apps for Web, PWA (progressive Web-App) and Desktop platform (Windows,macOS,Linux).