2017-01-26 4 views
1

Xamarin.Forms ярлык, который помещен в строку сетки фиксированного размера, имеет отрезанный текст, или, скорее, он отображает слишком много текста, а нижняя строка отображается только половина из-за фиксированной высоты строки сетки. Высота строки сетки должна оставаться фиксированной.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 пролить некоторый свет на меня?

+0

если высота сетки должна быть в фиксированном размере, то единственное, что я могу придумать, - это уменьшить шрифт вашей метки. –

ответ

0

Вот варианты, как я это вижу -

  1. Уменьшить размер шрифта метки
  2. Не используйте размерный ряд фиксированной сетки. Используйте либо Auto, либо *
  3. Оберните свою метку в ScrollView, чтобы в случае ее отключения пользователь мог прокручивать ее, чтобы просмотреть содержимое.
+0

Сетка должна иметь фиксированный размер, к сожалению, я не могу с этим поделать, как в спецификациях. Я думаю, что мне придется писать собственный рендерер, где я измеряю линейную высоту и разделяю ее с высотой сетки, а затем устанавливаю свойство maxlines textview на это значение. Я вернусь сюда, когда я проверю это –

Смежные вопросы