我在一個listView里面有以下的expandationTiles串列(因為有超過20個專案,所以要能滾動),當我點擊它時,它在一個面板中顯示另一個內容。我想每次只打開一個專案(如果我打開了一個,其他打開的就必須關閉),這部分現在正在作業。請看代碼:
Expanded(
孩子。ListView.separated(
itemCount: snapshot.data[i].products.length,
key: key('builder ${selected.toString()}')。
itemBuilder。(ctx, index) {
return ExpansionTile(
標題。行(
兒童。[
Text('${snapshot.data[i].products[index].code} - ', style: TextStyle(fontWeight: FontWeight.bold),)。
展開(
孩子。Text('${snapshot.data[i].products[index].price ==null ? "0.00" : NumberFormat.simpleCurrency(locale: 'pt_Br').format(snapshot.data[i].products[index].price)}'/span>, style: TextStyle(fontWeight: FontWeight.bold, color: Colors.red),)
)
],
),
兒童。[
容器(
高度。MediaQuery.of(context).size.height * 0.60,
width: MediaQuery.of(context).size.width,
孩子。ProductsColorWidget(snapshot.data[i].products[index], snapshot.data[i], refresh)
),
],
onExpansionChanged: ((newState) {
if(newState){
setState(() {
selected = index;
});
}else{
setState(() {
selected = -1;
});
}
}),
key: key(index.toString())。
initiallyExpanded: index == selected,
);
},
SeparatorBuilder: (context, index) {
return Divider()。
},
)
)
問題是每次我打開一個專案時,它都會重建螢屏,我必須再次滾動以找到我點擊的專案。
例如,我點擊了最后一個專案,所以,我想看這個專案的內容,但是,串列會滾動到第一個專案,而我必須回滾到最后一個專案才能看到它的內容;
我想要的是:我想看到這個專案的內容。
我想要的是什么。在我每次點擊一個專案時,不需要滾動到串列的開頭。只需點擊一個專案,打開并顯示其內容......或者滾動到被點擊的專案。
uj5u.com熱心網友回復:
ListView.builder(
itemCount: snapshot.data[i].products.length,
itemBuilder。(BuildContext context, int index) {
return ExpansionTile(
鑰匙。key('builder ${selected.toString()}')。
initiallyExpanded: index == selected,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/315699.html
標籤:
