ListView

PHOTO EMBED

Tue Jun 18 2024 15:09:56 GMT+0000 (Coordinated Universal Time)

Saved by @mehran

import 'dart:convert';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart' show rootBundle;

class Listview extends StatefulWidget {
  const Listview({Key? key}) : super(key: key);

  @override
  State<Listview> createState() => _ListviewState();
}

class _ListviewState extends State<Listview> {
  List<Map<String, dynamic>> items = [];

  @override
  void initState() {
    super.initState();
    loadJsonData();
  }

  Future<void> loadJsonData() async {
    final String response = await rootBundle.loadString('assets/Response.json');
    final List<dynamic> data = json.decode(response);
    setState(() {
      items = List<Map<String, dynamic>>.from(data);
    });
  }

  void _onItemTap(Map<String, dynamic> item) {
    ScaffoldMessenger.of(context).showSnackBar(
      SnackBar(
        content: Text(
            'REQUEST STATUS: ${item['REQUEST STATUS']}, RESULT: ${item['RESULT']}'),
      ),
    );
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: const Text('JSON ListView'),
      ),
      body: ListView.separated(
        itemCount: items.length,
        itemBuilder: (context, index) {
          final item = items[index];
          return Card(
            child: ListTile(
              title: Text(item['REQUEST STATUS']),
              subtitle: Text(item['RESULT']),
              trailing: Icon(Icons.last_page_rounded),
              onTap: () => _onItemTap(item),
            ),
          );
        },
        separatorBuilder: (context, index) => const Divider(),
      ),
    );
  }
}

void main() {
  runApp(const MaterialApp(
    home: Listview(),
  ));
}
content_copyCOPY

https://www.youtube.com/watch?v=1OEhIpBIZXM