我需要獲取整個 list.builder 高度,包括螢屏視圖之外 的部分串列子項的高度不同
我使用了 GlobalKey 方法,但它只給了我螢屏上顯示的串列的高度
我找到了這個解決方案,它正在作業,并在滾動事件后給我完整的 list.builder 高度,但是當通過更改狀態向 list.builder 添加更多子項時,此代碼不再起作用
scrollController.addListener(() {
double? fullListViewHeight;
double fullListHeightHelper = listKey.currentContext!.size!.height
scrollController.position.extentAfter;
fullListView ??= fullListHeightHelper;
}
uj5u.com熱心網友回復:
listview.builder只構建顯示給用戶的專案,為了使用 GlobalKey 方法獲取高度,您可以使用listView同時構建所有專案。如果您不知道如何將串列傳遞給listView,請參見以下示例:
List yourList = [...];
_buildList(){
List<Widget> _children =yourList.map((e) => YourListItem()).toList();
return ListView(
key:yourKey,
children: _children,
);
}
uj5u.com熱心網友回復:
它只給了我螢屏上顯示的串列的高度
對,那是正確的。因為 listview 不會呈現所有的孩子。請參閱listview的檔案:
ListView.builder ...建構式適用于具有大量(或無限)子級的串列視圖,因為僅對那些實際可見的子級呼叫構建器。
要獲得所有孩子的確切身高是不可能的。因為當小部件子滾動出視圖時,相關的元素子樹、狀態和渲染物件被破壞。
我認為您需要手動計算或使孩子的身高對所有人都相同。
uj5u.com熱心網友回復:
要計算它,您需要使每個專案的高度相同。然后,要獲得 的高度,ListView.builder您只需將每個專案的高度乘以 的長度ListView.builder。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/511555.html
標籤:扑镖列表显示颤振列表视图
