Я пытаюсь добиться эффекта, как это на мобильный телефон (ИОС + Android): http://i.imgur.com/6zaTdRd.pngВыделив текущий выбранный TextField - лучший подход
Если выбранный TextField имеет синий тонированный значок + подчеркивающий
So в моей инфраструктуре отсутствует поддержка серого масштабирования растрового изображения любого типа, поэтому мне нужно поменять местами между двумя изображениями для достижения этого эффекта.
Моя текущая реализация выглядит следующим образом:
Пожалуйста, обратите внимание на рамки титанового сплава MVC, но я предполагаю, что основная логика должна быть похожа.
Слушаю для размытия/событий фокуса для переключения текущего изображения
$.firstNameField.addEventListener('focus', function(e){
swapImages($.firstNameField.getParent());
});
$.lastNameField.addEventListener('focus', function(e){
swapImages($.lastNameField.getParent());
});
, а затем я поменять изображения так:
/**
* Swaps between the images (..._0 and ..._1) of an ImageView nested in a
TableRow
* ..._0 Greyscale image
* ..._0 Colour image
* @param e current TableViewRow
*/
function swapImages(e){
var imagePathSplit = (e.children[0].image).split('_');
var newImagePath = null;
if(imagePathSplit[1] == "0.png")
newImagePath = imagePathSplit[0] + "_1.png";
else
newImagePath = imagePathSplit[0] + "_0.png";
e.children[0].image = newImagePath;
return;
}
Это не выглядит большой, особенно так как мне нужно много больше полей с этой функциональностью, я также хочу реализовать tabbing (используя Return key = NEXT) между полями, которые будут дополнительно активировать воздушный шар, чтобы увеличить еще 1 прослушиватель событий в поле.
Как бы это было сделано в идеале? Я могу думать о том, как просто создавать поля в коде в форме массива, что должно помочь упростить дело (не более заглядывая слишком далеко для родителя/детей, но это все равно закончится тем, что довольно много слушателей для правильного переключения?
EDIT: Забыл добавить, как у меня есть настройки TextFields:.
<TableView id="paypalTable">
<TableViewSection>
<TableViewRow id="firstNameView" class="tableRow">
<ImageView id="firstNameIcon" class="textFieldIcon"/>
<TextField id="firstNameField" class="textField"/>
</TableViewRow>