importer ‘package:flutter/material.dart’;
void main() {
runApp(MonApp());
}
la classe MyApp étend StatelessWidget {
@passer outre
Construction du widget (contexte BuildContext) {
retourner MaterialApp(
titre : ‘DraggableScrollableSheet GFG’,
thème : ThemeData(
primarySwatch : Colors.green,
),
accueil : page d’accueil(),
);
}
}
class HomePage étend StatefulWidget {
const HomePage({Key?key}) : super(key:key);
@passer outre
_HomePageState createState() => _HomePageState();
}
la classe _HomePageState étend State
List
List
List
List
int selectedTile = 0 ;
@passer outre
Construction du widget (contexte BuildContext) {
retourner l’échafaudage(
AppBar : AppBar(
titre : Texte(‘GeeksForGeeks’),
),
corps : Conteneur(
enfant : Pile(
enfants: [
animalsList(),
bottomDetailsSheet(),
],
),
),
);
}
Widget animauxListe() {
return ListView(
enfants: [
animalListTile(0, animalNames[0]),
animalListTile(1, animalNames[1]),
animalListTile(2, animalNames[2]),
],
);
}
Widget animalListTile(int index, String animalName) {
retour Remplissage(
remplissage : EdgeInsets.all(8.0),
enfant : ListeTile(
en fût: () {
setState(() {
selectedTile = index ;
});
},
titre : Texte(
Nom de l’animal,
style : Style de texte(
couleur: Colors.brown,
taille de la police : 24,0,
fontWeight : FontWeight.w600,
),
),
tileColor: Colors.lightGreen[300],
sélectionné : index == selectedTile,
selectedTileColor: Colors.lightGreen[600],
),
);
}
Widget bottomDetailsSheet() {
return DraggableScrollableSheet(
InitialChildSize : .2,
minChildSize : 0.1,
maxChildSize : 0.6,
builder : (contexte BuildContext, ScrollController scrollController) {
retour Conteneur(
couleur: Colors.lightGreen[100],
enfant : ListView(
contrôleur : scrollController,
enfants: [
ListTile(
title: Text(
« NAME »,
),
subtitle: Text(
animalNames[selectedTile],
),
),
ListTile(
titre : Texte(
« FAMILLE »,
),
sous-titre : Texte(
animalFamille[selectedTile],
),
),
ListTile(
titre : Texte(
« DURÉE DE VIE »,
),
sous-titre : Texte(
animalLifeSpan[selectedTile],
),
),
ListTile(
titre : Texte(
« POIDS »,
),
sous-titre : Texte(
animalPoids[selectedTile],
),
),
],
),
);
},
);
}
}