Как вы можете видеть, эта TabBar сделана из списка вкладок 'suj.subSe c',
appBar: AppBar(
title: Text(suj.titulo),
centerTitle: true,
bottom: TabBar(
controller: _tabController,
tabs: suj.subSec,
),
),
body: TabBarView(
controller: _tabController,
children: List<Widget>.generate(suj.subSec.length, (int index){
var listaDest = suj.dest[index];
return SingleChildScrollView(
padding: EdgeInsets.all(10),
child: Column(
children: <Widget>[
Container(
child: ListView.builder(
shrinkWrap: true,
physics: ClampingScrollPhysics(),
itemCount: listaDest.length,
itemBuilder: (BuildContext context, int indx) {
return CartaoPonto(listaDest, indx);
},
),
),```
И затем в TabBarView отображается список, соответствующий вкладке, сделанный CartaoPonto:
class CartaoPonto extends StatelessWidget {
var listaDest;
int index;
CartaoPonto(this.listaDest, this.index);
@override
Widget build(BuildContext context) {
return Container(
margin: EdgeInsets.only(bottom: 8),
decoration: BoxDecoration(
color: Color(0xffE9F4F9), borderRadius: BorderRadius.circular(20)),
child: Row(
crossAxisAlignment: CrossAxisAlignment.center,
children: [
ClipRRect(
borderRadius: BorderRadius.only(
topLeft: Radius.circular(20),
bottomLeft: Radius.circular(20)),
child: Placeholder(
fallbackHeight: 90,
fallbackWidth: 110,
),
),
Flexible(
child: Container(
padding: EdgeInsets.symmetric(horizontal: 16),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text(
listaDest[index].titulo.toString(),
Но для этой тренировки у меня должно быть 2 соответствующих списка, первый - это список вкладок, а второй - список списков, так что я могу сказать своему строителю, чтобы получить список с индексом, соответствующим индексу табуляции.
List<Seccao> listaSeccoes = [
Seccao(titulo: 'Inicio', icon: Icon(Icons.home)),
Seccao(titulo: 'Concelho',cor: Colors.black26, icon: Icon(Icons.place)),
Seccao(titulo: 'Pontos de Interesse',cor: Colors.black26, icon: Icon(Icons.explore),
subSec: [
Tab(text: 'Praias'),
Tab(text: 'Lazer'),
Tab(text: 'Desporto'),
], dest: [
listaPraias,
listaLazer,
listaDesporto,
]),
Как я могу сделать это более прямым и динамичным c способом?