// import 'dart:convert';
// import 'dart:html';
// import 'dart:html';
import 'dart:convert';
//https://www.fiverr.com/share/VBRL4B
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_zubair_dictionary/Model_work/cricket_model.dart';
import 'package:http/http.dart';
// import 'package:http/http.dart';
// class GetApi extends StatefulWidget {
// @override
// _GetApiState createState() => _GetApiState();
// }
// class _GetApiState extends State<GetApi> {
// var jsonPost = [];
// final url = "https://jsonplaceholder.typicode.com/posts";
// final url = "https://api.dictionaryapi.dev/api/v2/entries/en/hello";
// // final url = "https://api.dictionaryapi.dev/api/v2/entries/en/<word>";
// void getData() async {
// final response = await get(Uri.parse(url));
// final decodeData = jsonDecode(response.body);
// setState(() {
// jsonPost = decodeData;
// });
// }
// @override
// void initState() {
// super.initState();
// getData();
// }
// @override
// Widget build(BuildContext context) {
// return Scaffold(
// body: ListView.builder(
// itemCount: jsonPost.length,
// itemBuilder: (c, i) {
// final post = jsonPost[i];
// return Text("Title:${post['title']}\n");
// // Body:${post["body"]}
// }),
// );
// }
// }
// class GetApi extends StatefulWidget {
// @override
// _GetApiState createState() => _GetApiState();
// }
// class _GetApiState extends State<GetApi> {
// var jsonpost;
// var jsonDecode;
// void loadAsset() async {
// final loadJson = await rootBundle
// .loadString("https://api.dictionaryapi.dev/api/v2/entries/en/hello");
// final jsonDecode = await json.decode(loadJson);
// setState(() {
// jsonpost = jsonDecode;
// });
// print(jsonpost['hello']);
// }
// @override
// void initState() {
// loadAsset();
// super.initState();
// }
// @override
// Widget build(BuildContext context) {
// return Scaffold(body: ListView.builder(itemBuilder: (c, i) {
// final post = jsonpost[i];
// return Text("Body:${post["hello"]};
// }));
// }
// }
class Cricketpage extends StatelessWidget {
Future<cricketModel> loadcricketdata() async {
var loadjson = await rootBundle.loadString('json_data/cricket_json.json');
var jsondecode = await json.decode(loadjson);
var c = cricketModel.myjson(jsondecode);
return c;
}
@override
Widget build(BuildContext context) {
loadcricketdata();
return Scaffold(
body: FutureBuilder(
future: loadcricketdata(),
builder: (c, AsyncSnapshot<cricketModel> snapshot) {
if (!snapshot.hasData) {
return CircularProgressIndicator();
}
if (snapshot.connectionState == ConnectionState.waiting) {
return CircularProgressIndicator();
}
return Center(
child: Card(
color: Colors.amber,
child: Text('${snapshot.data!.crickformet}'),
),
);
}),
);
}
}
2ND CODE
import 'dart:async';
import 'dart:convert';
import 'dart:ffi';
import 'package:http/http.dart';
import 'package:flutter/material.dart';
import 'package:flutter_zubair_dictionary/TabBarView/Dictionary.dart';
import 'package:flutter_zubair_dictionary/TabBarView/Thesaurus.dart';
class SearchPage extends StatefulWidget {
static const id = '/SearchPage';
@override
_SearchPageState createState() => _SearchPageState();
}
class _SearchPageState extends State<SearchPage> {
String url = " https://owlbot.info/api/v4/dictionary/";
String token = "fb205c1d10156395e1bc1de2a7652b75c73622e3";
TextEditingController controllar = TextEditingController();
late final StreamController streamController;
late final Stream stream;
search() async {
if (controllar.text == null || controllar.text.length == 0) {
streamController.add(null);
}
Response response = await get(Uri.parse(url + controllar.text.trim()),
headers: {"Authorization": "Token " + token});
// var jsonResponse = response.body;
streamController.add(json.decode(response.body));
print(response.body);
// print('fidsjfiashfaijs');
}
@override
void initState() {
super.initState();
streamController = StreamController();
stream = streamController.stream;
}
@override
Widget build(BuildContext context) {
return DefaultTabController(
length: 2,
child: Scaffold(
appBar: AppBar(
bottom: TabBar(tabs: [
Padding(
padding: const EdgeInsets.only(bottom: 10),
child: Text(
'Dictionary',
style: TextStyle(fontSize: 20),
),
),
Padding(
padding: const EdgeInsets.only(bottom: 10),
child: Text(
'Thesaurus',
style: TextStyle(fontSize: 20),
),
),
]),
title: Row(
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
children: [
Padding(
padding: const EdgeInsets.only(right: 5),
child: Expanded(
flex: 10,
child: Container(
width: 225,
height: 45,
child: TextFormField(
controller: controllar,
onChanged: (String text) {},
style: TextStyle(color: Color(0xff265667)),
decoration: InputDecoration(
prefixIcon: Padding(
padding: const EdgeInsets.only(top: 2),
child: IconButton(
color: Color(0xff265667),
onPressed: () {
search();
setState(() {
controllar.selection;
});
},
icon: Icon(
Icons.search,
size: 32,
// color: Colors.blue,
),
),
),
border: InputBorder.none,
hintText: 'Search for a word',
hintStyle: TextStyle(fontSize: 15),
fillColor: Colors.black26,
suffixIcon: Padding(
padding: const EdgeInsets.only(bottom: 10),
child: IconButton(
onPressed: () {
search();
setState(() {
controllar.clear();
});
},
icon: Icon(Icons.close),
color: Color(0xff265667),
iconSize: 35,
),
)),
),
decoration: BoxDecoration(
color: Colors.white,
borderRadius: BorderRadius.circular(7))),
),
),
Expanded(
flex: 2,
child: Container(
child: IconButton(
splashRadius: Material.defaultSplashRadius,
onPressed: () {
setState(() {});
},
icon: Icon(
Icons.mic,
size: 40,
))),
)
],
),
),
body: StreamBuilder(
stream: stream,
builder: (BuildContext cts, AsyncSnapshot snapshot) {
// if (snapshot.data == null) {
// Center(child: Text("Enter Search Word"));
// }
return ListView.builder(
itemCount: snapshot.data["definitions"],
itemBuilder: (BuildContext context, int index) {
return ListBody(
children: <Widget>[
Container(
color: Colors.grey,
child: ListTile(
leading: snapshot.data["definitions"][index]
["image_url"] ==
null
? null
: CircleAvatar(
backgroundImage: NetworkImage(
snapshot.data["definitions"][index]
["image_url"]),
),
title: Text(controllar.text.trim() +
"(" +
snapshot.data["definitions"][index]["type"] +
")"),
),
)
],
);
});
},
)
// TabBarView(children: [
// Dictionary(),
// Thesaurus(),
// ]
// ),
),
);
}
}