Home > Back-end >  Flutter data with the index 0 not showing
Flutter data with the index 0 not showing

Time:10-18

hi am trying to make a search bar that filters according to the description the filter is searching fine but theres one missing data that have the index 0 and its replaced by the search bar how can i fix it ? and if anyone know how i can make it show me only the data that i filtered and when i delete all the data comesback and thank you so very much

import 'dart:convert';
import 'dart:io';
import 'package:az/Actifs.dart';
import 'package:az/SR_Details.dart';
import 'package:az/main.dart';
import 'package:badges/badges.dart';
import 'package:flutter/material.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:http/http.dart' as http;
import 'package:intl/intl.dart';

import 'class/sr.dart';

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: DataFromAPI(),
    );
  }
}

class DataFromAPI extends StatefulWidget {
  @override
  _DataFromAPIState createState() => _DataFromAPIState();
}

List<Sr> _MyAllData=[];
List<Sr> _SrForDsiplay=[];
Map<String, Color>  map={
"QUEUED":Color.fromARGB(255, 255, 136, 0),
"CLOSED":Colors.grey,
"Rejeced":Colors.red,
"INPROG":Colors.green,
"PENDING":Colors.blue,
"RESOLVED":Colors.green,
"NEW":Colors.blue,
};
Map<dynamic, String>  map1={
1 :"Urgent",
2:"High",
3:"Medium",
4:"Low",
};
class _DataFromAPIState extends State<DataFromAPI> {
String title_string = "Liste des SR";

  @override
  void initState() {
    loadData().then((value) {
      setState(() {
        _MyAllData.addAll(value);
        _SrForDsiplay=_MyAllData;
        print(_MyAllData[0].attributes.description!.content);
        print(_MyAllData[1].attributes.description!.content);
      });
    });
    super.initState();
  }
void setappbar(numsr) {
setState((){
   title_string =numsr.toString();
});

}
  Future<List<Sr>> loadData() async {
    try {
      var response = await http.get(Uri.parse(
          'http://192.168.1.59:9080/maxrest/rest/mbo/sr/?_lid=maxadmin&_lpwd=maxadmin&_format=json'));
      if (response.statusCode == 200) {
        //print(response.body);
        final jsonBody = json.decode(response.body);
        Demandes data = Demandes.fromJson(jsonBody);
        final srAttributes = data.srMboSet.sr;
        title_string='Liste des SR : ${srAttributes.length.toString()}';
        return srAttributes;
      }
    } catch (e) {
      throw Exception(e.toString());
    }
    throw Exception("");
  }

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      debugShowCheckedModeBanner:false,
      home: new Scaffold(  appBar: AppBar(
          title: Text(title_string),
          leading: IconButton(
              icon: Icon(Icons.arrow_back), onPressed: () {  Navigator.push(
                  context, MaterialPageRoute(builder: (context) => Home())); },
             ),
        ),
        body: FutureBuilder<List<Sr>?>(
          future: loadData(),
          builder: (context, snapshot) {  
            if (!snapshot.hasData) {
              return SizedBox(
       height: MediaQuery.of(context).size.height / 1.3,
       child: Center(
           child: CircularProgressIndicator(),
            ),
        );
            } else {
              return new ListView.builder(
                itemCount: snapshot.data!.length,
                itemBuilder: ((_, index) {
                  return index == 0
                      ? _searchbar()
                      :
                      new ListTile(
                          title: new Card(
                            margin: new EdgeInsets.symmetric(
                                vertical: 2.0, horizontal: 8.0),
                            elevation: 10,
                            child: new ListTile(
                              title: new Column(
                                crossAxisAlignment: CrossAxisAlignment.start,
                                children: <Widget>[
                                  Padding(padding: new EdgeInsets.all(2.0)),
                                  Row(children :[
                                  Container(
                                   decoration: BoxDecoration(
                                     border: Border.all(
                                     color: Color.fromARGB(255, 255, 255, 255),
                                    ),
                                    color: map['${snapshot.data![index].attributes.status.content}'],
                                    borderRadius: BorderRadius.all(Radius.circular(20)),
                                  ),
                                   child:Text('  ${snapshot.data![index].attributes.status.content}  '),
                                  ),
                                 Container(child: Text('  '),),
                                  Container(
                                   decoration: BoxDecoration(
                                     border: Border.all(
                                     color: Color.fromARGB(255, 255, 255, 255),
                                    ),
                                    color:Colors.grey,
                                    borderRadius: BorderRadius.all(Radius.circular(20)),
                                  ),
                                   child:Text(
                                    "  High  "),
                                  ),
                                   ],
                                    ),
                                    SizedBox( 
                                     height: 8,
                                     ),
                                     Row(children: <Widget>[
                                      Expanded( child: Container(child: Text('${snapshot.data![index].attributes.description?.content}',style: GoogleFonts.openSans(
                                                  textStyle: TextStyle(
                                                  fontSize: 16,
                                                  fontWeight: FontWeight.w600)),),),),
                                     Expanded(child: Container(child:Text( '  ${snapshot.data![index].attributes.ticketid.content}',style: GoogleFonts.openSans(
                                                  textStyle: TextStyle(
                                                  fontSize: 14,
                                                  fontWeight: FontWeight.w400)),)))
                                     ],),
                                      new Divider(
                                        color: Color.fromARGB(255, 110, 109, 109),
                                     ),
                                  Text(
                                    'Reported : ${DateFormat.yMMMMEEEEd().format(DateTime.parse('${snapshot.data![index].attributes.statusdate.content}' ))}' ,
                                 style: GoogleFonts.openSans(
                                                  textStyle: TextStyle(
                                                  fontSize: 16,
                                                  fontWeight: FontWeight.w400)),
                                    ),
                                  new Text(
                                      'Reported by  : ${snapshot.data![index].attributes.reportedby?.content}',style: GoogleFonts.openSans(
                                                  textStyle: TextStyle(
                                                  fontSize: 16,
                                                  fontWeight: FontWeight.w400)),
                                  ),
                                  Row(children: [new Image(image: AssetImage('assets/courroi.png'), width: 20),
                                      Text(
                                      '${snapshot.data![index].attributes.assetnum?.content}'),], ),
                                  Row(children: [new Image(image: AssetImage('assets/location1.png'), width: 20),
                                      Text(
                                      '${snapshot.data![index].attributes.assetsiteid?.content}'),], ) ,
                                       Divider(
                                        color: Color.fromARGB(255, 110, 109, 109),
                                     ),
                                     Row(children:[
                                      Expanded(child: Badge(            
                                        position: BadgePosition.topEnd(top: -8, end: 20),
                                        badgeColor: Colors.grey,
                                        badgeContent: Text('1'),
                                        child :IconButton(icon :Icon(Icons.file_present_rounded),  padding: const EdgeInsets.all(0),

                                        onPressed: () {
                                        },),
                                      )
                                        ),
                                      Expanded(child: IconButton ( 
                                        icon: Icon(Icons.file_copy),
                                        onPressed: () {  }, 
                                        ),),
                                      Expanded(child:  IconButton(onPressed:() {  
                                      }, icon: Icon(Icons.delete))  )
                                        ],)
                                ],  
                              ),
                              trailing: Icon(Icons.arrow_forward_ios_rounded),
                              
                            ),
                          ),
                          onTap: () {
        /*  Navigator.push(
          context,MaterialPageRoute(builder: (context) =>SRDetail()),
  );*/
                          }
                          );
                }),
              );
            }
          },
        ),
      ),
    );
  }

  _searchbar() {
    return Padding(
      padding: const EdgeInsets.all(8.0),
      child: TextField(
        decoration:
            InputDecoration(icon: Icon(Icons.search), hintText: "Enter id or description"),
        onChanged: (text) {
          text=text.toLowerCase();
           print(text);
          setState(() {
            _MyAllData =_MyAllData.where((srAttributes) {
            var srDescription = srAttributes.attributes.description!.content.toString().toLowerCase();
            print(srDescription);
            return srDescription.contains(text);
            }).toList();
          });
        },
      ),
    );
  }
}

CodePudding user response:

The piece of code responsible is this:

  return index == 0
      ? _searchbar()
      :

You are basically replacing the first item (the one that has index 0) with the search bar. I suggest placing your ListView into a column with 2 children, the searchbar and the ListView.

CodePudding user response:

all you guys have to do is to put the search bar in his own column or listview thats it :) or a listview cuz it can give you a error bottom overloaded with pixels

  • Related