如何在touchStart上启用按钮焦点?

时间:2014-10-29 15:40:27

标签: titanium titanium-mobile titanium-alloy tss

我已经创建了一个按钮,我需要一些来自按钮的响应,在触摸按钮时,按钮焦点应该能够像改变背景颜色一样。我怎么能这样做?

我的代码是, 查看:

<Button class="button" id="proceedButton" onClick="openQuestionnaire">Proceed</Button>

样式:

".button":{
    width: '50%',
    top: '25dp',
    borderRadius: 8,
    borderWidth: 1,
    borderColor: '#808080',  
    backgroundGradient: {
        type: "linear",
        startPoint: { x: "0%", y:"0%"},
        endPoint:   { x: "0%", y:"100%"},
        colors: [
            { color: "#4F94CD", offset: 0.0 },
            { color: "#4F94CD", offset: 1.0 }
        ]
    }
}

控制器:

$.proceedButton.addEventListener('touchstart', function() { 
    $.proceedButton.isFocused = true;
  });  

  $.proceedButton.addEventListener('touchend', function() { 
     $.proceedButton.isFocused = false;
  }); 

以上代码无效。只需触摸按钮,我就需要在背景颜色上略有变化。

任何解决方案!!

3 个答案:

答案 0 :(得分:2)

使用此属性并传递颜色代码

backgroundSelectedColor : "RED"
对于普通视图,

focusable必须为true。 您可以参考此http://docs.appcelerator.com/titanium/latest/#!/api/Titanium.UI.Button-property-backgroundSelectedColor

我希望它可以帮到你,

答案 1 :(得分:2)

Alloy xml就像这样

<Button class="button" id="proceedButton" onClick="openQuestionnaire">Proceed</Button>

然后按钮属性就像这样

".button":{
 width: '50%',
 top: '25dp',
 borderRadius: 8,
 borderWidth: 1,
 borderColor: '#808080',
 backgroundSelectedColor : "red",
 backgroundSelectedImage : "/my_image.png",
 backgroundGradient: {
    type: "linear",
    startPoint: { x: "0%", y:"0%"},
    endPoint:   { x: "0%", y:"100%"},
    colors: [
        { color: "#4F94CD", offset: 0.0 },
        { color: "#4F94CD", offset: 1.0 }
    ]
  }
}

您可以在触摸焦点上设置所选图像或背景颜色。 您不需要在控制器中编写的控制器代码。 对于某些对象,您也可以使用selectedColor。 您还可以设置backgroundFocusedImage,

答案 2 :(得分:0)

正如@CodeForFun所提到的,你可以使用按钮的backgroundSelectedColor属性。

以下是Titanium中按钮可以使用的所有状态。

希望这会有所帮助。

修改:使用示例:

查看:

<Button class="button" >Proceed</Button>

TSS:

".button":{
width: '50%',
top: '25dp',
backgroundSelectedColor : "#4F94CD" //usage
}