Monday 15 June 2020

Flutter custom listview with cardview and icon android studio

                      

                  Flutter custom listview with cardview and icon android studio


programmingcodetech

1.Add dependencies fluttertoast: ^4.0.1 in pubspec.yaml

 dependencies:

  flutter:
sdk: flutter



cupertino_icons: ^0.1.3
fluttertoast: ^4.0.1

 

2.Create lib/main.dart 

 import 'package:flutter/material.dart';

import 'package:listviewdemo/listview_activity.dart';

void main() {
runApp(MyApp());
}

class MyApp extends StatelessWidget {
// This widget is the root of your application.
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
theme: ThemeData(
primarySwatch: Colors.purple,
visualDensity: VisualDensity.adaptivePlatformDensity,
),
home: ListViewActivity(title: 'EmailPageList'),
);
}
}

 

3.Create lib/email_data.dart model 

class EmailData {
EmailData({this.name, this.email, this.phonenumber});

final String name;
final String email;
final String phonenumber;
}

List<EmailData> allEmail = [
EmailData(
name: 'Amit Rawat',
email: 'amit.rawat@me.com',
phonenumber: '+109938388380'),
EmailData(
name: 'John Ricciardi',
email: 'John.ricciardi@me.com',
phonenumber: '+109938388380'),
EmailData(
name: 'David Smith ',
email: 'David.Smith@me.com',
phonenumber: '+109938388380'),
EmailData(
name: 'Michael Hassinger',
email: 'Michael.hassinger@me.com',
phonenumber: '+109938388380'),
EmailData(
name: 'Chris Cupps',
email: 'Chris.cupps@me.com',
phonenumber: '+1099383-08380'),
EmailData(
name: 'Mike Nantz',
email: 'Mike.nantz@me.com',
phonenumber: '+10993838-8380'),
EmailData(
name: 'Mark Primus',
email: 'Mark.primus@me.com',
phonenumber: '+1099383-88380'),
EmailData(
name: 'Muriel Lewellyn',
email: 'muriel.lewellyn@me.com',
phonenumber: '+1099-38388380'),
EmailData(
name: 'Hunter Giraud',
email: 'Hunter.giraud@me.com',
phonenumber: '+109938388-380'),
EmailData(
name: 'Corina Whiddon',
email: 'corina.whiddon@me.com',
phonenumber: '+10993838-8380'),
EmailData(
name: 'Meaghan Covarrubias',
email: 'meaghan.covarrubias@me.com',
phonenumber: '+10993838-8380'),
EmailData(
name: 'Daniel Severson',
email: 'Daniel .severson@me.com',
phonenumber: '+109938388-380'),
EmailData(
name: 'Maria Baxter',
email: 'Maria .baxter@me.com',
phonenumber: '+109938388-380'),
EmailData(
name: 'Alessandra Kahn',
email: 'alessandra.kahn@me.com',
phonenumber: '+109938388-380'),
EmailData(
name: 'James Saari',
email: 'James .saari@me.com',
phonenumber: '+109938388-380'),
EmailData(
name: 'Valeria Salvador',
email: 'valeria.salvador@me.com',
phonenumber: '+109938388-380'),
EmailData(
name: 'Fredrick Folkerts',
email: 'fredrick.folkerts@me.com',
phonenumber: '+109938388-380'),
EmailData(
name: 'Delmy Izzi',
email: 'delmy.izzi@me.com',
phonenumber: '+09938388-380'),
EmailData(
name: 'Leann Klock',
email: 'leann.klock@me.com',
phonenumber: '+09938388-380'),
EmailData(
name: 'Rhiannon Macfarlane',
email: 'rhiannon.macfarlane@me.com',
phonenumber: '+09938388-380'),
];

4.Create lib/listview_activity.dart

 import 'package:flutter/cupertino.dart';

import 'package:flutter/material.dart';
import 'package:listviewdemo/email_data.dart';

import 'listview_title.dart';

class ListViewActivity extends StatelessWidget {
ListViewActivity({Key key, this.title}) : super(key: key);

final String title;

@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text(this.title),
),
body: Container(
child: _buildList(),
),
);
}

Widget _buildList() {
return ListView.builder(
itemCount: allEmail.length,
itemBuilder: (BuildContext context, int index) {
EmailData data = allEmail[index];
return Card(
elevation: 8.0,
child: Container(
child: EmailListTile(data),
),
);
});
}
}

5.Create lib/listview_title.dart

 import 'package:flutter/material.dart';

import 'package:fluttertoast/fluttertoast.dart';
import 'package:listviewdemo/email_data.dart';

class EmailListTile extends ListTile {
EmailListTile(EmailData data)
: super(
title: Text(data.name),
subtitle: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
new Text(data.email),
new Text(data.phonenumber)
],
),
leading: CircleAvatar(child: Text(data.name[0])),
dense: false,
trailing: Icon(
Icons.arrow_forward,
size: 24.0,
color: Colors.deepPurple,
),
onTap: () {
Fluttertoast.showToast(
msg: data.email,
toastLength: Toast.LENGTH_SHORT,
gravity: ToastGravity.CENTER,
timeInSecForIosWeb: 1,
backgroundColor: Colors.grey,
textColor: Colors.white,
fontSize: 14.0);
});
}


2 comments:

  1. thanks for sharing

    ReplyDelete
  2. I'm not sure exactly why but this weblog is loading incredibly slow for me. Is anyone else having this issue or is it a problem on my end? I'll check back later on and see if the problem still exists. apple hilfe telefon berlin

    ReplyDelete