在Xamarin Forms项目(C#代码,而不是XAML)中,我有一些嵌套的水平stacklayout,如下所示:
注意有一个“Declined:”标签,然后是数量Label(4),然后是原因代码标签(“无法查找”)。我已将原因代码Label设置为LineBreakMode.TailTruncation
的LineBreakMode。我希望当标签太长而无法放在线上时,它会用椭圆截断它。确实如此。 然而,它没有优雅地做到 - 它会导致事情被压扁和自动换行,如下所示:
我已将“拒绝:”标签设置为LineBreakMode.NoWrap
,您会注意到“拒绝”中的最后一个“d”被切断“。我没有在”已订购“上设置任何LineBreakMode和“挑选”标签,你会注意到这些自动换行。为什么会发生这种情况,我该如何解决呢?
答案 0 :(得分:1)
当你旋转设备或者在父元素上调用ForceLayout()
所有嵌套的StackLayout
时,它是否再次正常?
我注意到有时候我必须这样做才能在某些设备上强制重绘或布局传递(通常只需要在一个平台或另一个平台上,而不是所有平台)。
如果这不起作用,我会建议您使用Grid
,如果可能的话。当我遇到像这样彼此叠加的元素时,我倾向于这样做。我不确定为什么会这样,但Grid
永远不会让我失望。 Grid
似乎对间距要严格得多,并且不会让事情像那样流失