yocky12k

flutter convex container lanjutan

Dec 12th, 2023 (edited)
112
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Dart 2.86 KB | None | 0 0
  1. import 'package:flutter/material.dart';
  2. import 'package:convex_bottom_bar/convex_bottom_bar.dart';
  3.  
  4. void main() {
  5.   runApp(MainApp());
  6. }
  7.  
  8. class MainApp extends StatelessWidget {
  9.   final List<dataBuah> buah = [
  10.     dataBuah(nama: 'Apel', gambar: 'images/apel.jpg'),
  11.     dataBuah(nama: 'Durian', gambar: 'images/durian.jpg'),
  12.     dataBuah(nama: 'Jeruk', gambar: 'images/jeruk.jpg'),
  13.     dataBuah(nama: 'Mangga', gambar: 'images/mangga.jpg'),
  14.     dataBuah(nama: 'Salak', gambar: 'images/salak.jpg'),
  15.     dataBuah(nama: 'Tebu', gambar: 'images/tebu.jpg'),
  16.   ];
  17.  
  18.   @override
  19.   Widget build(BuildContext context) {
  20.     return MaterialApp(
  21.       home: DefaultTabController(
  22.         length: 3,
  23.         child: Scaffold(
  24.           appBar: AppBar(
  25.             title: Text('Container & Convex'),
  26.           ),
  27.           body: TabBarView(
  28.             children: [
  29.               GridView.builder(
  30.                   gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(
  31.                     crossAxisCount: 3,
  32.                     crossAxisSpacing: 5.0,
  33.                     mainAxisSpacing: 5.0,
  34.                   ),
  35.                   itemCount: buah.length,
  36.                   itemBuilder: (context, index) {
  37.                     return GridItem(ambilData: buah[index]);
  38.                   }),
  39.               ListView.builder(
  40.                 itemCount: buah.length,
  41.                 itemBuilder: (context, index){
  42.                   return ListItem(ambilData: buah[index]);
  43.                 }
  44.               ),
  45.               Text('Ini Tab Ketiga'),
  46.             ],
  47.           ),
  48.           bottomNavigationBar: ConvexAppBar(
  49.             items: [
  50.               TabItem(icon: Icons.home, title: 'Beranda'),
  51.               TabItem(icon: Icons.image, title: 'Buah'),
  52.               TabItem(icon: Icons.person, title: 'Profile'),
  53.             ],
  54.           ),
  55.         ),
  56.       ),
  57.     );
  58.   }
  59. }
  60.  
  61. class dataBuah {
  62.   final String nama;
  63.   final String gambar;
  64.   dataBuah({required this.nama, required this.gambar});
  65. }
  66.  
  67. class GridItem extends StatelessWidget {
  68.   final dataBuah ambilData;
  69.   GridItem({required this.ambilData});
  70.   @override
  71.   Widget build(BuildContext context) {
  72.     return Card(
  73.       child: Column(
  74.         children: [
  75.           Image.asset(
  76.             ambilData.gambar,
  77.             height: 100,
  78.             fit: BoxFit.cover,
  79.             width: MediaQuery.of(context).size.width,
  80.           ),
  81.           SizedBox(height: 10),
  82.           Text(ambilData.nama),
  83.         ],
  84.       ),
  85.     );
  86.   }
  87. }
  88.  
  89. class ListItem extends StatelessWidget {
  90.   final dataBuah ambilData;
  91.   ListItem({required this.ambilData});
  92.  
  93.   @override
  94.   Widget build(BuildContext context) {
  95.     return Card(
  96.       child: ListTile(
  97.         leading: Image.asset(
  98.           ambilData.gambar,
  99.           width: 60,
  100.         ),
  101.         title: Text(ambilData.nama),
  102.       ),
  103.     );
  104.   }
  105. }
  106.  
Add Comment
Please, Sign In to add comment