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. Если я увеличу высоту вида прокрутки, я вижу желтый вид внутри. Так в чем проблема?

Другие вопросы по тегам