Skip to content

controller.hide()|show() does not wort #10

Description

@grukillerkams

I was trying to hide the floating bar after clicking on a result but it does work and does not throw any error.

import 'package:eshop/data/models/models.dart';
import 'package:eshop/data/providers/providers.dart';
import 'package:eshop/utils/res/enums.dart';
import 'package:eshop/utils/utils.dart';
import 'package:flutter/material.dart';
import 'package:go_router/go_router.dart';
import 'package:material_floating_search_bar/material_floating_search_bar.dart';
import 'package:provider/provider.dart';

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

  @override
  Widget build(BuildContext context) {
    BrandsProvider bp = context.read<BrandsProvider>();
    BrandsProvider bpW = context.watch<BrandsProvider>();
    SearchProvider sp = context.read<SearchProvider>();
    final FloatingSearchBarController searchController =
    FloatingSearchBarController();
    return Scaffold(
      appBar: AppBar(
        title: const Text("Search filter"),
        leading: IconButton(
          onPressed: () {
            context.pop();
          },
          icon: const Icon(Icons.arrow_back),
        ),
      ),
      body: Padding(
        padding: const EdgeInsets.symmetric(horizontal: 10.0),
        child: Stack(
          children: [
            FloatingSearchBar(
              height: 60,
              controller: searchController,
              progress: bpW.uiState == UIState.LOADING ? true : false,
              automaticallyImplyBackButton: false,
              backdropColor: Colors.transparent,
              onQueryChanged: (q) {
                bp.getBrands(q);
              },
              builder: (context, anim) {
                switch (bpW.uiState) {
                  case UIState.UNINITIALIZED:
                    return const SizedBox(height: 0, width: 0);
                  case UIState.ERROR:
                    return const ListTile(
                      title: Center(child: Text("An error occurred")),
                    );
                  case UIState.LOADING:
                    return const SizedBox(height: 0);
                  case UIState.DATA:
                    return ListView.builder(
                      padding: EdgeInsets.zero,
                      shrinkWrap: true,
                      itemCount: bpW.brands.length,
                      itemBuilder: (context, i) {
                        Brand brand = bpW.brands[i];
                        return GestureDetector(
                          onTap: () {
                            sp.filters[QueryProductDto.brand] = brand.id;
                            searchController.query = brand.name;
                            searchController.hide(); /// DOES NOT WORK
                            bp.clear();
                          },
                          child: ListTile(
                              title: Text(brand.name),
                            ),
                        );
                      },
                    );
                }
              },
            ),
          ],
        ),
      ),
    );
  }
}

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions