Табуляция Flex4 не работает

при наличии нескольких элементов, таких как радиокнопки, которые при выборе имеют дополнительные поля, порядок вкладок не работает должным образом. на самом деле (в моем проекте) вкладка «застревает» между переключателем и одним полем даты.

три переключателя с дополнительными элементами ввода

вот минимальный пример, который не работает должным образом. если вы запустите этот пример и нажмете вкладку, чтобы просмотреть все поля, табуляция остановится на первой радиокнопке (= ок), затем на поле даты (= ок, потому что все радиокнопки должны рассматриваться как одна табуляция). но если вы нажмете вкладку еще раз, он перейдет к третьей радиокнопке (= false, потому что первая радиокнопка уже была достигнута) и, наконец, попадет на текстовый ввод (= ок).

в моем проекте есть более сложные формы с еще более странным поведением.

<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
               xmlns:s="library://ns.adobe.com/flex/spark" 
               xmlns:mx="library://ns.adobe.com/flex/mx">
    <s:VGroup>
        <s:RadioButton label="use no data"/>
        <s:HGroup>
            <s:RadioButton label="use date"/>
            <mx:DateField  />
        </s:HGroup>
        <s:HGroup>
            <s:RadioButton label="use text"/>
            <s:TextInput />
        </s:HGroup>
    </s:VGroup>
</s:Application>

person Markus Rossler    schedule 28.12.2012    source источник


Ответы (1)


Мое решение здесь состоит в том, чтобы указать значения tabIndex, где все значения radiobutton-tabIndex находятся ПЕРЕД значениями для остальных элементов (в данном случае datefield + textinput)

<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
               xmlns:s="library://ns.adobe.com/flex/spark" 
               xmlns:mx="library://ns.adobe.com/flex/mx" >
    <s:VGroup>
        <s:RadioButton label="use no data" tabIndex="1" />
        <s:HGroup>
            <s:RadioButton label="use date" tabIndex="2" />
            <mx:DateField tabIndex="100" />
        </s:HGroup>
        <s:HGroup>
            <s:RadioButton label="use text" tabIndex="3" />
            <s:TextInput tabIndex="101" />
        </s:HGroup>
    </s:VGroup>
</s:Application>
person Markus Rossler    schedule 28.12.2012