2013-11-30 5 views
0

У меня есть слушатель onClick, добавленный в ImageView в index.xml. щелчок ImageView не запускает функцию, указанную в index.js, однако добавление onClick к содержащему виду делает. Это похоже на то, что содержащее представление захватывает клик и не позволяет содержащемуся ImageView его получать. Тем не менее, у меня есть несколько таких, и другие, похоже, работают нормально.Прикладной титановый сплав onclick игнорируется

index.xml:

<Alloy> 
<Window class="container" onOpen="onWIndowLoad"> 
    <View id="wholeView"> 
     <!-- header --> 
     <View id="appTopMenuHolder"> 
      <ImageView id="appMenuButton" image="/images/menu_icon.png" onClick="askWhy"></ImageView> 
      <View id="appTitle"></View> 
      <View id="newIcon"></View> 
     </View> 
     <View id="group"> <!-- removed onClick="testViewClick" --> 
      <ImageView id="porfilePic" image="/images/profile.png" onClick="askWhy"></ImageView> <!-- removed onClick="askWhy" --> 
     </View> 
     <!-- scrollable status section --> 
     <ScrollView id="statusViewHolder" scrollType="vertical"> 
     </ScrollView> 
    </View> 
</Window> 

index.js:

function askWhy(e) { 
    alert("why"); 
} 

помощь или толчок в правильном направлении было бы весьма признателен. Thank you, -NP

ответ

2

Я уверен, что ваши проблемы исходят из ваших стилей (обычно в файле .tss). Попробуйте этот код в файле index.tss:

".container":{ 
    backgroundColor: 'black' 
} 
"#appTopMenuHolder":{ 
    top:0, 
    backgroundColor: 'red', 
    height: 100, 
    width: Ti.UI.FILL 
} 
"#appTitle":{ 
    top:0, 
    backgroundColor: 'yellow', 
    height:20 
} 
"#newIcon":{ 
    top:20, 
    backgroundColor: 'white', 
    height:20 
} 
"#group":{ 
    top: 100, 
    backgroundColor: 'blue' 
} 
"#statusViewHolder":{ 
    backgroundColor: 'green', 
    bottom: 50, 
    height: 100, 
    width: Ti.UI.FILL 
} 

Ваша проблема может быть, что вы не указываете положение и размерные значения ваших взглядов. Когда это произойдет, и свойство макета не будет установлено, титан центрирует представления и задает размеры «auto». Значение «auto» в этом случае заполнит родительский элемент.

Чтобы ваш вид newIcon мог перекрывать виды: appTitle и appMenuButton. То же самое может произойти с statusViewHolder. Это может быть перекрытие всех других видов в пределах wholeView.

Сказав, что лучше указать позиции и размеры всех ваших компонентов, чтобы избежать неожиданного поведения.

+0

Бинго. Спасибо. Ширина appTitle не была указана и, по-видимому, перекрывала другие. –

+0

Кодирующий трюк, который я использую, иногда состоит в том, чтобы создать границу вокруг объектов, когда вы сначала прокладываете вещи, таким образом вы можете визуально видеть размеры ваших объектов строки –

+0

. Подсказка устанавливает высоту и ширину ваших представлений, играет важную роль. Спасибо за ответ. Сохранял меня по часам. –

Смежные вопросы