网格行内的Xamarin.Forms标签将文本切断

时间:2017-01-26 10:15:30

标签: android xamarin grid xamarin.forms label

Xamarin.Forms标签位于固定大小的网格行中,它的文本被截断,或者更确切地说,它显示太多的文本,并且由于网格的固定高度,最低的行只显示一半行。网格行高度必须保持固定。

gridInner.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1.8, GridUnitType.Star) });
gridInner.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(7.5, GridUnitType.Star) });
gridInner.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1.7, GridUnitType.Star) });

var descLabel = new Label()
{
    HorizontalOptions = LayoutOptions.StartAndExpand,
    VerticalOptions = LayoutOptions.Fill,
    FontSize = Device.GetNamedSize(NamedSize.Small, typeof(Label)),
    FontAttributes = FontAttributes.None,
    TextColor = Color.Black,
    LineBreakMode = LineBreakMode.WordWrap,
    VerticalTextAlignment = TextAlignment.Start
};
descLabel.SetBinding(Label.TextProperty, "Offer.Description");
gridInner.Children.Add(descLabel, 0, 1);

Text cut off on Android 5.1(Lollipop)

在我看来,标签的高度大于网格行,或者文本行高度计算错误。 我已经尝试了我能想到的一切,例如:

<style name="App_TextViewStyle" parent="@android:style/Widget.TextView">
   <item name="android:baselineAligned">false</item>
   <item name="android:includeFontPadding">false</item>
   <item name="android:padding">1dp</item>
</style>

在XF中有更多经验的人能否对我有所了解?

2 个答案:

答案 0 :(得分:0)

以下是我看到的选项 -

  1. 缩小标签的字体大小
  2. 请勿使用固定大小的网格行。使用Auto*
  3. 将您的标签包裹在ScrollView中,以便在切断时,用户可以在其中滚动以查看内容。

答案 1 :(得分:0)

请记住“大文本”。所有用户中有20%将手机的默认字体大小更改为更大。您应该测试它的工作方式。 您可能需要为此设置最大文本大小。 否则,设备将根据手机的设置自动缩放。