Titanium Appcelerator Alloy не поддерживает стили formFactor для виджетов
Я разработал пример кода, в котором я создал виджет, имеющий только вид, который добавляет вид изображения внутри него. Он отлично работает, когда я применяю стили непосредственно из tss контроллера, но когда используется "formFactor", он не работает. Чтобы уточнить то же самое, пожалуйста, проверьте код, размещенный здесь.
Вы можете создать новый проект Alloy и протестировать его с помощью следующего кода:
ПРИМЕЧАНИЕ. Все зависимости включены в config.json.
Реализация виджета:
widget.xml
<Alloy>
<View id="section" class="section"></View>
</Alloy>
widget.tss
".section":{
backgroundColor: 'red',
layout : 'vertical'
},
widget.js
var args = arguments[0] || {};
$.section.applyProperties(args);
$.setData = function(view) {
$.section.add(view);
}
Кодирование для индексной страницы
Index.xml
<Alloy>
<ScrollView class="baseView">
<Widget id="contentView" class="contentView" src="com.investis.scrollablesection"></Widget>
</ScrollView>
</Alloy>
Index.tss
".contentView [formFactor=handheld]":{
backgroundColor: 'green',
width: Ti.UI.FILL,
height: Ti.UI.SIZE
}
Index.js
var imgView = Ti.UI.createView({
backgroundColor: 'yellow',
top: 20,
left: 0,
right: 0,
width: Ti.UI.FILL,
height: Ti.UI.SIZE
});
$.contentView.setData(imgView);
То же самое работает, если я удаляю [formFactor=handheld]
от .contentView
в Index.tss
1 ответ
В вашем ответе отсутствуют некоторые важные детали: например, какую платформу вы собираете, какую версию Titanium SDK вы используете, и вы не совсем понимаете, чего вы ожидаете по сравнению с тем, что вы считаете проблемой.
Используя ваш код, создавая для симулятора iOS, я получаю зеленый скроллвид, заполняющий ширину экрана и высоту примерно 20dp - с или без квалификатора [formFactor=handheld] класса index.tss. Если я увеличу высоту вида прокрутки, я вижу желтый вид внутри. Так в чем проблема?