Appcelerator:如何更改Android的活动TextFields的橙色边框?

时间:2013-11-11 23:14:56

标签: titanium appcelerator titanium-alloy

在Appcelerator中,每当我有一个TextField时,边框总是一个粗橙色。我该如何设计呢? backgroundSelectedColor似乎没有效果,backgroundColor会改变实际的背景颜色。我希望背景颜色保持不变,但边框颜色要改变。这怎么可能?是吗?谁想要厚厚的橙色边框?!?这是默认的吗?

1 个答案:

答案 0 :(得分:1)

我试图通过使用backgroundFocusedImagebackgroundImage属性来实现与下面相同的效果。

enter image description here enter image description here

最后,我最终实现了eventListeners手动交换这些属性(注意:我正在使用Alloy,所以如果你只使用Titanium,你的代码看起来会略有不同):

function toggleFocusBackground(event) {

  function swap(obj, prop1, prop2) {
    var tmp;
    tmp = obj[prop1];
    obj[prop1] = obj[prop2];
    obj[prop2] = tmp;
  }

  function multiSwap(obj, props) {
    var prop1, prop2;
    for (prop1 in props) {
      prop2 = props[prop1];
      if (typeof obj[prop1] !== 'undefined' && typeof obj[prop2] !== 'undefined') {
        swap(obj, prop1, prop2);
      }
    }
  }

  var node, i;
  var props = {
    'backgroundFocusedImage': 'backgroundImage',
    'focusedColor': 'color'
  };

  for (i in this.parent.children) {
    multiSwap( this.parent.children[i], props );
  }
}

for (var i in $) {
  if (typeof $[i].value !== 'undefined') {
    $[i].addEventListener('focus', toggleFocusBackground);
    $[i].addEventListener('blur', toggleFocusBackground);
  }
}