Горизонтальное выравнивание как "Право" не работает в ярком сценарии - PullRequest
0 голосов
/ 20 декабря 2018

Я пытаюсь нарисовать кнопку с кнопкой «Текст» и «Текст справа» внутри кнопки.Файл XML выглядит следующим образом.

<?xml version="1.0" encoding="utf-8" ?>
<component name="settingsButtons" extends="Group">

<interface>
  <field id="itemContent" type="node" onChange="itemContentChanged"/>
</interface>

<script type="text/brightscript" >
<![CDATA[
    sub itemContentChanged()
        itemData = m.top.itemContent

        m.buttonRect.width = itemData.buttonWidth
        m.buttonRect.height = itemData.buttonHeight
        m.buttonRect.color = itemData.buttonColor

        m.buttonText.text = itemData.titleText
        m.buttonText.translation = m.defaultTextTranslation
        m.buttonText.color = itemData.textColor

        m.buttonRightText.text = itemData.rightText
        m.buttonRightText.translation = m.defaultRightTextTranslation
        m.buttonRightText.color = itemData.textColor
    end sub

    sub initCoordinates()
        m.defaultTextTranslation = "[30, 20]"
        m.defaultRightTextTranslation = "[790, 20]"
    end sub

    sub init()
        initCoordinates()
        m.buttonRect = m.top.findNode("buttonRect")
        m.buttonText = m.top.findNode("buttonText")
        m.buttonRightText = m.top.findNode("buttonRightText")
    end sub
]]>
</script>

<children>
    <Rectangle id="buttonRect" translation="[0, 0]" width="820" height="70">
        <Label id="buttonText" height="29" horizAlign = "left" vertAlign = "center" translation="[0, 0]" >
          <Font role="font" uri="pkg:/fonts/NHaasGroteskDSStd-75Bd.otf" size="24" />
        </Label>
        <Label id="buttonRightText" height="29" horizAlign = "right" vertAlign = "center" translation="[0, 0]" >
          <Font role="font" uri="pkg:/fonts/NHaasGroteskTXStd-55Rg.otf" size="24" />
        </Label>
    </Rectangle>
</children>

</component>

Несмотря на то, что я сохранил horizAlign как право, buttonRightText отображается из позиции, где отображается buttonText (т.е. отображается как выравнивание по левому краю).Пожалуйста, дайте мне знать, как решить эту проблему.

1 Ответ

0 голосов
/ 30 декабря 2018

Из документа SDK необходимо указать ширину (не равную нулю), чтобы horizAlign работал.

Один из вариантов - все две метки имеют одинаковую ширину.с прямоугольником и сохраните перевод как [0, 0].

sub itemContentChanged()
  itemData = m.top.itemContent

  m.buttonRect.width = itemData.buttonWidth
  m.buttonRect.height = itemData.buttonHeight
  m.buttonRect.color = itemData.buttonColor

  m.buttonText.text = itemData.titleText
  m.buttonText.width = itemData.buttonWidth
  m.buttonText.color = itemData.textColor

  m.buttonRightText.text = itemData.rightText
  m.buttonRightText.width = itemData.buttonWidth
  m.buttonRightText.color = itemData.textColor
end sub
...