SearchList для FlutterAudioQuery не работает

когда я запускаю код без текста на панели поиска, он показывает null, как сказано в коде, но когда я помещаю текст в свою панель поиска.

он просто выводит все песни с моего устройства вместо названия песни, которую я вставил в текст.

пожалуйста, что не так, действительно нужна ваша помощь

       import 'package:boomwarp/screens/songs.dart';

import 'screens/list_song.dart';
import 'package:flutter/material.dart';
import 'package:google_fonts/google_fonts.dart';

import 'package:flutter_audio_query/flutter_audio_query.dart';

 class search extends StatefulWidget {
   @override
 _searchState createState() => _searchState();
  }

    class _searchState extends State<search> {
    TextEditingController controller = TextEditingController();

     final FlutterAudioQuery audioQuery = FlutterAudioQuery();

  List<AlbumInfo> albums = [];
   List<SongInfo> songs = [];
  @override
   void initState() {
   super.initState();
    searchAlbums();
   searchSongs();
     }

  Future<List<AlbumInfo>> searchAlbums() async {
albums = await audioQuery.searchAlbums();
  }

  Future<List<SongInfo>> searchSongs() async {
songs = await audioQuery.searchSongs(query: "");
return songs;
   }


  @override
   Widget build(BuildContext context) {
     return Scaffold(
        appBar: AppBar(
    backgroundColor: Colors.grey[900],
    toolbarHeight: 60.0,
    title: TextField(
      onChanged: (query) {
        setState(() {
          
        });
      },
      controller: controller,
      cursorColor: Colors.indigo[300],
      decoration: InputDecoration(
          hintText: " Search songs, albums, artist....",
          hintStyle: TextStyle(color: Colors.white),
          border: InputBorder.none,
          suffixIcon: IconButton(
              icon: Icon(Icons.search),
              color: Colors.indigo[300],
              onPressed: () {})),
      style: TextStyle(color: Colors.white, fontSize: 15.0),
    ),
  ),
  backgroundColor: Colors.grey[900],
  body: FutureBuilder(
      future: searchSongs(),
      builder: (context, item) {
        // Load items

        return ListView.builder(
          itemCount: songs.length,
          itemBuilder: (context, i) {
            if (controller.text.isNotEmpty) {
              return ListTile(
                title: Text(
                  ('${songs[i].title}'),
                  style: TextStyle(color: Colors.indigo.shade300),
                ),
                subtitle: Text(
                  songs[i].artist,
                  style: TextStyle(color: Colors.white70),
                ),
              );
            } else {
              return null;
            }
          },
        );
      }),
      );
    }
     }
      

Я не знаю, onChanged ли это, потому что, когда я помещаю название песни, которую хочу найти, вместо этого он просто приносит все

0 ответов

Другие вопросы по тегам