![](/img/trans.png)
[英]OOP Error Row's children must not contain any null values, but a null value was found at index 0
[英]Row's children must not contain any null values, but a null value was found at index 2
我有下面的屏幕圖像
我在 ui 中有一個 Apple 登錄,所以我只需要在 IOS 中使用這個 Apple 登錄,所以我創建了以下代碼:
Platform.isIOS
? IPetCustomCircleBtn(
constraintWidth:
constraints.maxWidth * 0.13,
constraintHeight:
constraints.maxHeight * 0.13,
iPetShapeBorder: CircleBorder(
side: BorderSide(
width: 2,
color: Colors.black,
style: BorderStyle.solid,
),
),
iPetChildCard: IPetCustomIcon(
ipFontIc: FontAwesomeIcons.apple,
colour: Colors.black,
),
iPetIconColor: Colors.black,
iPetFillColor: Colors.white,
)
: null
我發現了這個錯誤:
Row's children must not contain any null values, but a null value was found at index 2
我試圖通過添加一個空的小部件作為下面的代碼來處理這個問題
Platform.isIOS
? IPetCustomCircleBtn(
constraintWidth:
constraints.maxWidth * 0.13,
constraintHeight:
constraints.maxHeight * 0.13,
iPetShapeBorder: CircleBorder(
side: BorderSide(
width: 2,
color: Colors.black,
style: BorderStyle.solid,
),
),
iPetChildCard: IPetCustomIcon(
ipFontIc: FontAwesomeIcons.apple,
colour: Colors.black,
),
iPetIconColor: Colors.black,
iPetFillColor: Colors.white,
)
: SizedBox()
但問題是外觀不好,因為我需要按鈕的 rest 位於行的中心,這是我的全行:
Row(
mainAxisAlignment: MainAxisAlignment.spaceAround,
children: [
IPetCustomCircleBtn(
constraintWidth: constraints.maxWidth * 0.13,
constraintHeight: constraints.maxHeight * 0.13,
iPetShapeBorder: CircleBorder(),
iPetChildCard: IPetCustomIcon(
ipFontIc: FontAwesomeIcons.google,
colour: Colors.white,
),
iPetIconColor: Colors.white,
iPetFillColor: Colors.red,
),
IPetCustomCircleBtn(
constraintWidth: constraints.maxWidth * 0.13,
constraintHeight: constraints.maxHeight * 0.13,
iPetShapeBorder: CircleBorder(),
iPetChildCard: IPetCustomIcon(
ipFontIc: FontAwesomeIcons.facebook,
colour: Colors.white,
),
iPetIconColor: AppConst.kPrimaryWhiteBgColor,
iPetFillColor: AppConst.kBlueColor,
),
Platform.isIOS
? IPetCustomCircleBtn(
constraintWidth:
constraints.maxWidth * 0.13,
constraintHeight:
constraints.maxHeight * 0.13,
iPetShapeBorder: CircleBorder(
side: BorderSide(
width: 2,
color: Colors.black,
style: BorderStyle.solid,
),
),
iPetChildCard: IPetCustomIcon(
ipFontIc: FontAwesomeIcons.apple,
colour: Colors.black,
),
iPetIconColor: Colors.black,
iPetFillColor: Colors.white,
)
: SizedBox()
],
),
所以對於這種情況有什么好辦法:D..
我希望這可以足夠清楚..
我建議你構建兩行,1 行有蘋果登錄,其他沒有,然后調用Platform.isIOS? rowWithIos: rowWithoutIos
Platform.isIOS? rowWithIos: rowWithoutIos
,如果您為所有登錄類型構建小部件,您可以減少這兩行中的重復代碼。
我能想到的方法有兩種:
嘗試為您的sizedBox 添加高度和寬度
SizedBox(height: 0, width: 0,)
嘗試
Row( mainAxisAlignment: Platform.isIOS? MainAxisAlignment.spaceAround: MainAxisAlignment.spaceBetween....
您可以根據需要替換 mainAxisAlignment
我找到了更好的解決方案,就像下面的代碼:
if (Platform.isIOS)
IPetCustomCircleBtn(
constraintWidth: constraints.maxWidth * 0.13,
constraintHeight: constraints.maxHeight * 0.13,
iPetShapeBorder: CircleBorder(
side: BorderSide(
width: 2,
color: Colors.black,
style: BorderStyle.solid,
),
),
iPetChildCard: IPetCustomIcon(
ipFontIc: FontAwesomeIcons.apple,
colour: Colors.black,
),
iPetIconColor: Colors.black,
iPetFillColor: Colors.white,
),
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.