2016-09-29 3 views
1

Текст внутри метки по умолчанию по умолчанию на iOS, однако на Android это не так. Как сосредоточить его по вертикали на Android (мне интересно сосредоточить текст внутри Label, а не накладывать ярлык внутри любого другого макета, чтобы получить тот же эффект)?Nativescript: как вертикально выровнять текст внутри Label на Android

Чтобы увидеть, что я имею в виду, запустите следующий код на iOS и Android.

XML:

<Page xmlns="http://schemas.nativescript.org/tns.xsd" loaded="onLoaded"> 
    <Label text="test" /> 
</Page> 

CSS:

Label { 
    width: 60; 
    height: 60; 
    text-align: center; 
    background-color: aquamarine; 
    border-radius: 30; 
} 

ответ

5

Установите обивка соответственно в (ширина - размера шрифта)/2 (грубое приближение может отличаться для небольших коробок, где капитал или маленькие буквы имеет разную центральную точку)

eg

Label { 
    width: 60; 
    height: 60; 
    border-radius: 30; 
    text-align:center; 
    background-color: aquamarine; 
    padding: 15; 
    font-size: 20; 
} 

или пример с более крупными размерами:

Label { 
    width: 200; 
    height: 200; 
    border-radius: 100; 
    text-align:center; 
    background-color: aquamarine; 
    padding: 80; 
    font-size: 20; 
} 

p.s Если вы обернуть ярлык в StackLayout вам не нужно будет высота

например

<StackLayout> 
    <Label text="test" class="title"/> 
    </StackLayout> 

Label { 
    width: 200; 
    border-radius: 100; 
    text-align:center; 
    background-color: aquamarine; 
    padding: 80; 
    font-size: 20; 
} 
+0

Спасибо Ник! Это работает. – terreb

+1

С другой стороны, это должно быть (высота - размер шрифта)/2, но в случае выше и ширины и высоты имеют одинаковые значения, поэтому он будет работать для пропорциональных размеров. –

+0

Когда я изменяю заполнение точно (высота - размер шрифта)/2 текст обрезается снизу. Итак, да, это еще нужно настроить для разных размеров шрифта. – terreb

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