Skip to content

App not working  #51187

Closed
Closed

Description

@mainkolade
DataSearch extends SearchDelegate<String>{
 final names = [
  "Davids",
  "Aigbogun",
  "Egunbiyi",
  "Onijesude",
  "Olurindeopelopejesu", 
  "AyeniFolakemi", 
  "ADEGBUYIOLUDAMOLA",
  "Oyebolu", 
  "AKINSOLAABISOLA",
 ];

  final recentnames = [
  "Onijesude",
  "Olurindeopelopejesu", 
  "AyeniFolakemi", 
  "ADEGBUYIOLUDAMOLA",
  ];

  @override
  List<Widget> buildActions(BuildContext context) {
    return [IconButton(icon: Icon(Icons.clear), 
    onPressed: () {
      query = "";
    })];
  }
  
  @override
  Widget buildLeading(BuildContext context) {
    return IconButton(
        icon: AnimatedIcon(
          icon: AnimatedIcons.menu_arrow,
          progress: transitionAnimation,
        ),
        onPressed: (){
          close(context, null);
        });
  }

  @override
  Widget buildResults(BuildContext context) {
    return Center(
      child: Container(
        height: 100.0,
        width: 100.0,
            child: Card(
          color: Colors.red,
            child: Center(
              child: Text(query),
            ),
          ),
      ),
    );
  }

  @override
  Widget buildSuggestions(BuildContext context) {
    final suggestionList = query.isEmpty
    ? recentnames
    : names.where((p) => p.startsWith(query)).toList();

    return ListView.builder(
      itemBuilder: (context,index)=>ListTile(
       onTap: (){
         showResults(context);
       },
      leading: Icon(Icons.location_city),
      title: RichText(text: TextSpan(
        text: suggestionList[index].substring(0,query.length),
        style: 
             TextStyle(color: Colors.black,fontWeight: FontWeight.bold),
        children: [TextSpan(
          text: suggestionList[index].substring(query.length),
          style:  TextStyle(color: Colors.grey))
        ]),
      )
    ),
     itemCount: suggestionList.length,
    );
  }

}


widget_test.dart

// This is a basic Flutter widget test.
//
// To perform an interaction with a widget in your test, use the WidgetTester
// utility that Flutter provides. For example, you can send tap and scroll
// gestures. You can also use WidgetTester to find child widgets in the widget
// tree, read text, and verify that the values of widget properties are correct.

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

import 'package:lom_search/main.dart';

void main() {
  testWidgets('Counter increments smoke test', (WidgetTester tester) async {
    // Build our app and trigger a frame.
    await tester.pumpWidget(MyApp());

    // Verify that our counter starts at 0.
    expect(find.text('0'), findsOneWidget);
    expect(find.text('1'), findsNothing);

    // Tap the '+' icon and trigger a frame.
    await tester.tap(find.byIcon(Icons.add));
    await tester.pump();

    // Verify that our counter has incremented.
    expect(find.text('0'), findsNothing);
    expect(find.text('1'), findsOneWidget);
  });
}

Screenshot_20200221-075232

Activity

  1. TahaTesser commented on Feb 21, 2020

    @TahaTesser
    Contributor

    Hi @dyric
    You need MediaQuery ancestor

    Check out this code sample

    import 'package:flutter/material.dart';
    
    void main() => runApp(MyApp());
    
    class MyApp extends StatelessWidget {
      @override
      Widget build(BuildContext context) {
        return MaterialApp(
          debugShowCheckedModeBanner: false,
          title: 'Material App',
          theme: ThemeData.dark(),
          home: Home(),
        );
      }
    }
    
    class Home extends StatelessWidget {
      @override
      Widget build(BuildContext context) {
        return Scaffold(
          appBar: AppBar(
            title: Text('Material App Bar'),
          ),
          body: Center(
            child: IconButton(
              icon: Icon(Icons.search),
              onPressed: () {
                showSearch(
                  context: context,
                  delegate: DataSearch(),
                );
              },
            ),
          ),
          floatingActionButton:
              FloatingActionButton(child: Icon(Icons.add), onPressed: () {}),
        );
      }
    }
    
    class DataSearch extends SearchDelegate {
      final names = [
        "Davids",
        "Aigbogun",
        "Egunbiyi",
        "Onijesude",
        "Olurindeopelopejesu",
        "AyeniFolakemi",
        "ADEGBUYIOLUDAMOLA",
        "Oyebolu",
        "AKINSOLAABISOLA",
      ];
    
      final recentnames = [
        "Onijesude",
        "Olurindeopelopejesu",
        "AyeniFolakemi",
        "ADEGBUYIOLUDAMOLA",
      ];
    
      @override
      List<Widget> buildActions(BuildContext context) {
        return [
          IconButton(
              icon: Icon(Icons.clear),
              onPressed: () {
                query = "";
              })
        ];
      }
    
      @override
      Widget buildLeading(BuildContext context) {
        return IconButton(
            icon: AnimatedIcon(
              icon: AnimatedIcons.menu_arrow,
              progress: transitionAnimation,
            ),
            onPressed: () {
              close(context, null);
            });
      }
    
      @override
      Widget buildResults(BuildContext context) {
        return Center(
          child: Container(
            height: 100.0,
            width: 100.0,
            child: Card(
              color: Colors.red,
              child: Center(
                child: Text(query),
              ),
            ),
          ),
        );
      }
    
      @override
      Widget buildSuggestions(BuildContext context) {
        final suggestionList = query.isEmpty
            ? recentnames
            : names.where((p) => p.startsWith(query)).toList();
    
        return ListView.builder(
          itemBuilder: (context, index) => ListTile(
              onTap: () {
                showResults(context);
              },
              leading: Icon(Icons.location_city),
              title: RichText(
                text: TextSpan(
                    text: suggestionList[index].substring(0, query.length),
                    style:
                        TextStyle(color: Colors.black, fontWeight: FontWeight.bold),
                    children: [
                      TextSpan(
                          text: suggestionList[index].substring(query.length),
                          style: TextStyle(color: Colors.grey))
                    ]),
              )),
          itemCount: suggestionList.length,
        );
      }
    }
    

    Let us know if resolves your issue
    Thank you

  2. added
    waiting for responseThe Flutter team cannot make further progress on this issue until the original reporter responds
    on Feb 21, 2020
  3. TahaTesser commented on Mar 20, 2020

    @TahaTesser
    Contributor

    Hi @dyric
    Without additional information, we are unfortunately not sure how to resolve this issue. We are therefore
    reluctantly going to close this bug for now. Please don't hesitate to comment on the bug if you have any
    more information for us; we will reopen it right away!
    Thanks for your contribution.

  4. lock commented on Apr 4, 2020

    @lock

    This thread has been automatically locked since there has not been any recent activity after it was closed. If you are still experiencing a similar issue, please open a new bug, including the output of flutter doctor -v and a minimal reproduction of the issue.

  5. locked and limited conversation to collaborators on Apr 4, 2020
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

    in triagePresently being triaged by the triage teamwaiting for responseThe Flutter team cannot make further progress on this issue until the original reporter responds

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions