如何动态地向Textview添加按钮

时间:2016-09-29 03:37:07

标签: sapui5

我在这里有一个问题,我需要在树表标题行的TextView中添加一些按钮,Button的颜色应根据行项目(子节点)数据进行更改。 怎么可能呢?拜托,有人帮我这个。

<TextView id="idKuljkiel" semanticColor="Critical" text="{path:'zstrv_fun>KuljKiel', formatter:'.zchangeColor'}" />

我已经创建了格式化程序功能,我可以在其中编写一些代码来创建按钮,但我无法在TextView中添加按钮,并且按钮的颜色应该更改为交通灯。

例如,如果小孩有&#34; X&#34;或&#34;&#34;黄色, 如果小孩有&#34; X&#34;或&#34; X&#34;然后是绿色 如果小孩有&#34;&#34;或&#34;&#34;然后是红色 任何人都可以帮我吗?

1 个答案:

答案 0 :(得分:0)

  • 您无法向TextView添加Button或任何其他控件。它不支持子控件。
  • 在格式化程序中,您不应修改视图。它只是为了格式化一个值。它应该是幂等的。
  • Button控件不支持任意颜色。它具有style属性,可让您将按钮更改为红色(拒绝),绿色(接受)或灰色(默认)。颜色取决于主题。

Yout可以将TextView与Button一起放入Horizo​​ntalLayout。然后,您可以将Button的visible属性绑定到模型(如果需要,可以使用格式化程序)。

<mvc:View xmlns:mvc="sap.ui.core.mvc" xmlns="sap.ui.commons" xmlns:l="sap.ui.layout">
...
  <l:HorizontalLayout>
    <TextView id="idKuljkiel" semanticColor="Critical" text="{path:'zstrv_fun>KuljKiel', formatter:'.zchangeColor'}" />
    <Button visible="{path:'zstrv_fun>WhatEver', formatter:'.zbuttonVisible'}" style="{path:'zstrv_fun>Bla', formatter:'.zbuttonStyle'}"/>
  </l:HorizontalLayout>
...
</mvc:View>

依赖于模型内部的数据结构,可以绑定到整个行对象并在格式化程序中使用它。否则,可能需要在加载后处理模型数据以计算标题行上的其他属性。