Я пытаюсь добавить панель вкладок и вид панели вкладок. однако значения вкладок и представления панели вкладок следует прослушивать из потока,
Во-первых, у этого есть некоторые проблемы: я не знаю, как определить длину контроллера панели вкладок по умолчанию при изменении длины потока. Кроме того, я попытался использовать тривиальные значки в панели вкладок (вместо потока, который я хочу слушать), чтобы узнать, сработает ли он или нет. Я пытался сделать это так:
class HomePage extends StatelessWidget {
final FirebaseUser user;
HomePage({this.user});
@override
Widget build(BuildContext context) {
return new DefaultTabController(
length: 20, `//I wrote 20 to only run `the code however, it should be the length of the stream but i don't know how to get it???
child: Scaffold(
appBar: AppBar(
title: Text("Home Page"),
),
body:Column(
children:<Widget>[ StreamBuilder<QuerySnapshot>(
stream: Firestore.instance.collection("places").snapshots(),
builder: (BuildContext context,AsyncSnapshot<QuerySnapshot> snapshot){
if (!snapshot.hasData){
return Center(child: CircularProgressIndicator());
}
else{
return Column(
children:<Widget>
[
TabBar( isScrollable: true,
tabs: new List.generate(snapshot.data.documents.length, (index) {
return new Tab(child: Text(snapshot.data.documents[index]['name'].toString().toUpperCase()));
//String f=snapshot.data.documents[index]["Place"].toString();
// print( Firestore.instance.collection("Places").document(f).collection("order 1").document('order 1').snapshots().toString());
}
)
),
TabBarView(
children: <Widget>[
Icon(Icons.directions_car),
Icon(Icons.directions_transit),
Icon(Icons.directions_bike),
],
)
],
);}
})
])
)
); }
}
Панель вкладок работает. Однако значки (которые находятся на панели вкладок, не отображаются при переходе между вкладками). Любая помощь?
Заранее спасибо.