Appcelerator Studio 在点击时更改列表项背景颜色
Appcelerator studio change listitem backgroundcolor on click
我需要这方面的帮助,我在 appcelerator studio 上有一个这样的列表视图:
<ListView id="lvPropuestas" defaultItemTemplate="plantilla">
<Templates>
<ItemTemplate name="plantilla">
<Label bindId="bindGarantia" class="columnG columnContentStyle"></Label>
<Label bindId="bindPropuesta" class="columnProp columnContentStyle"></Label>
<Label bindId="bindMonto" class="columnM columnContentStyle"></Label>
<Label bindId="bindPrima" class="columnPrim columnContentStyle"></Label>
<Button bindId="btnNavega" class="btnTabla" onClick="DetallePropuesta">></Button>
<!--
-->
</ItemTemplate>
</Templates>
<HeaderView>
<View backgroundColor="#E2DBD3" height="35dip">
<Label id="headerG" class="titleStyle">GARANTIA</Label>
<Label id="headerProp" class="titleStyle">PROPUESTAS</Label>
<!--
-->
<Label id="headerM" class="titleStyle">MONTO</Label>
<Label id="headerPrim" class="titleStyle">PRIMA</Label>
</View>
</HeaderView>
<ListSection>
</ListSection>
</ListView>
本节更新了网络服务调用*,所以在我的 js 中声明了一个事件监听器,如下所示:
$.lvPropuestas.addEventListener('itemclick',seleccionFila);
最后我的函数是这样的:
function seleccionFila(e){
var item = e.section.getItemAt(e.itemIndex);
item.properties.color ='#33CCCC';
e.section.updateItemAt(e.itemIndex, item); }
我试图更改列表项的背景颜色,但在点击的那一刻我抓住了该项目,但在来自 appcelerator 的文档中,他们 "change" 一些属性,如整行的背景颜色但是,这种方式引发错误的属性不是一个对象,一些帮助?
好的,我找到了一个方法来做到这一点,我真的希望这会有所帮助,首先在视图中我放置了一个包含该行所有内容的视图,然后将它放在一个像这样的 bindId 中:
<View bindId="bindView">
<Label bindId="bindGarantia" class="columnG columnContentStyle"></Label>
<Label bindId="bindPropuesta" class="columnProp columnContentStyle"></Label>
<Label bindId="bindMonto" class="columnM columnContentStyle"></Label>
<Label bindId="bindPrima" class="columnPrim columnContentStyle"></Label>
<Button bindId="btnNavega" class="btnTabla" onClick="DetallePropuesta">></Button>
<!--
-->
</View>
然后在 js 控制器中只需更改视图的 backgroundColor 及其 bindId 属性,如下所示:
function seleccionFila(e) {
var item = e.section.getItemAt(e.itemIndex);
item.bindView.backgroundColor = "#efefef";
e.section.updateItemAt(e.itemIndex, item);
}
就这些了
我需要这方面的帮助,我在 appcelerator studio 上有一个这样的列表视图:
<ListView id="lvPropuestas" defaultItemTemplate="plantilla">
<Templates>
<ItemTemplate name="plantilla">
<Label bindId="bindGarantia" class="columnG columnContentStyle"></Label>
<Label bindId="bindPropuesta" class="columnProp columnContentStyle"></Label>
<Label bindId="bindMonto" class="columnM columnContentStyle"></Label>
<Label bindId="bindPrima" class="columnPrim columnContentStyle"></Label>
<Button bindId="btnNavega" class="btnTabla" onClick="DetallePropuesta">></Button>
<!--
-->
</ItemTemplate>
</Templates>
<HeaderView>
<View backgroundColor="#E2DBD3" height="35dip">
<Label id="headerG" class="titleStyle">GARANTIA</Label>
<Label id="headerProp" class="titleStyle">PROPUESTAS</Label>
<!--
-->
<Label id="headerM" class="titleStyle">MONTO</Label>
<Label id="headerPrim" class="titleStyle">PRIMA</Label>
</View>
</HeaderView>
<ListSection>
</ListSection>
</ListView>
本节更新了网络服务调用*,所以在我的 js 中声明了一个事件监听器,如下所示:
$.lvPropuestas.addEventListener('itemclick',seleccionFila);
最后我的函数是这样的:
function seleccionFila(e){
var item = e.section.getItemAt(e.itemIndex);
item.properties.color ='#33CCCC';
e.section.updateItemAt(e.itemIndex, item); }
我试图更改列表项的背景颜色,但在点击的那一刻我抓住了该项目,但在来自 appcelerator 的文档中,他们 "change" 一些属性,如整行的背景颜色但是,这种方式引发错误的属性不是一个对象,一些帮助?
好的,我找到了一个方法来做到这一点,我真的希望这会有所帮助,首先在视图中我放置了一个包含该行所有内容的视图,然后将它放在一个像这样的 bindId 中:
<View bindId="bindView">
<Label bindId="bindGarantia" class="columnG columnContentStyle"></Label>
<Label bindId="bindPropuesta" class="columnProp columnContentStyle"></Label>
<Label bindId="bindMonto" class="columnM columnContentStyle"></Label>
<Label bindId="bindPrima" class="columnPrim columnContentStyle"></Label>
<Button bindId="btnNavega" class="btnTabla" onClick="DetallePropuesta">></Button>
<!--
-->
</View>
然后在 js 控制器中只需更改视图的 backgroundColor 及其 bindId 属性,如下所示:
function seleccionFila(e) {
var item = e.section.getItemAt(e.itemIndex);
item.bindView.backgroundColor = "#efefef";
e.section.updateItemAt(e.itemIndex, item);
}
就这些了