我有一个Private Sub MyCheckBox_Click()
Dim CheckBoxStatus as Boolean: CheckBoxStatus = MyUserForm.MyCheckBox.Value
Dim ComboBoxArray(0 To 4)
ComboBoxArray(0) = MyUserForm.ComboBox1 ' This line repeated and modified for the other 4 array members
If CheckBoxStatus Then
For i = LBound(ComboBoxArray) To UBound(ComboBoxArray)
CompetitorComboBoxes(i).Visible = True ' THIS IS WHERE THE ERROR IS THROWN
Next i
Else
' Appropriate else code to set the visibilities to False
End Sub
,其中包含一些小部件,并且我希望这些小部件中的最后一个最大高度为100px,但是如果屏幕上没有足够的空间,那么它应该可以缩小到0px
因此,如果这是我的布局,我希望黑色正方形下方的部分最多为100px,但是如果屏幕太小,我希望它相应地缩小。
Column
请注意中间的 Center(
child: Container(
height: double.infinity,
width: double.infinity,
color: Colors.blue,
child: Column(
children: <Widget>[
SizedBox(height: 20),
Container(color: Colors.white, width: 200, height: 200),
SizedBox(height: 20),
Container(color: Colors.grey, width: 400, height: 100),
Expanded(child: SizedBox(height: double.infinity)),
SizedBox(height: 50),
Container(color: Colors.black, width: 200, height: 200),
SizedBox(height: 100),
],
),
),
);
-这可以调整灰色和黑色容器之间的距离以填充屏幕高度。问题是某些设备的屏幕很小,以至于Expanded
变为0px,然后底部的Expanded
会溢出。因此,为什么要调整它,但又不要使其高度超过100px。
即使通读了the documentation about constraints,我仍然不知道该如何实现。
答案 0 :(得分:0)
回答您的问题,以使其达到最大高度,您可以尝试使用Constrained Box:
ConstrainedBox(
constraints: BoxConstraints(maxHeight: 100),
child: SizedBox(height: 100),
)
这将使SizedBox
的高度不能超过100像素。
但是,要实现所需的行为,您可以使用Flexible Widget:
Flexible(
child: SizedBox(height: 100),
);
Remember,Flexible的工作方式类似于Expanded,但它默认使用FlexFit.loose
的值FlexFit,因此允许其子项小于可用空间。这样,它不会强制您的SizedBox大于预期的大小。
答案 1 :(得分:0)
最好的方法是使用MediaQuery
,它还可以为您提供响应式布局。