Xamarin.Forms中多Label显示异常:新增Label覆盖旧Label求助
问题分析与解决方案
嘿,这绝对不是XAML的内置限制哦,是咱们布局没考虑到内容超出页面高度的情况~
你现在用的StackLayout本身不会自动提供滚动功能,当里面的Label数量增多、总高度超过当前页面的显示范围时,超出部分就会被截断,看起来像是“挤掉”了旧的Label,但其实是那些Label被推到了可视区域之外。
最简单的解决办法:给StackLayout套个ScrollView
只要把你的StackLayout放到ScrollView里,当内容超出页面高度时,用户就可以通过滚动来查看所有Label了,修改后的XAML代码如下:
<ScrollView> <StackLayout> <Label x:Name="name" FontSize="Medium"/> <Label x:Name="displaySoulNumber" FontSize="Medium"/> <Label x:Name="displayPersonalityNumber" FontSize="Medium"/> <Label x:Name="displayPowerNameNumber" FontSize="Medium"/> <Label x:Name="displayBirthDayNumber" FontSize="Medium"/> <Label x:Name="displayAttitudeNumber" FontSize="Medium"/> <Label x:Name="displayLifePathNumber" FontSize="Medium"/> <Label x:Name="displayDestinyNumber" FontSize="Medium"/> </StackLayout> </ScrollView>
额外检查点
你也可以快速确认下所有Label的IsVisible属性是不是都默认设为true(XAML里没写的话就是默认true),有没有不小心把某个Label的可见性关掉了——不过从你描述的“超过4个就挤掉旧的”来看,这个概率不大,主要还是滚动的问题。
另外,如果你以后要展示的是类似列表的结构化数据,也可以考虑用ListView或者CollectionView,但就你现在的需求来说,ScrollView + StackLayout已经完全够用啦~
内容的提问来源于stack exchange,提问作者Easy Homes LLC
相关产品推荐
相关产品推荐

