Я делаю Datagrid, даю ему столбцы и так много данных, которые нужно прокручивать, а dataitems - строки настолько широкие, что их нужно также прокручивать по горизонтали. Я также даю ему метод прослушивания кликов.Сетка в DataGridSkin больше, чем dataGrid
Проблема в том, что, если я нажимаю под элементом данных, он по-прежнему выполняет метод щелчка. Я проверяю цель в событии методом щелчка, и он говорит, что его «сетка» (сетка в DataGridSkin)
В принципе, «сетка» с кожи становится такой же широкой (по горизонтали и вертикали), что и данные, даже если все реквизиты, которые показывают высоту и ширину, говорят, что они имеют нормальную высоту и ширину.
Проблема в том, что «сетка» перехватывает все события мыши, делая все кнопки под dataGrid бесполезными.
Я попытался установить maxHeight/Width на сетке, но это не поможет.
Это ошибка в Spark или что?
EDIT: Я только понял, что проблема немного более конкретна.
В главном app.mxml у нас есть огромный viewstack и под ним панель с кнопками. NavigatorContents viewStack - это все разные виды моего приложения, и изменение вида - это просто изменение текущего выбранного элемента viewStack.
Теперь проблемный datagrid не влияет на какие-либо компоненты из вида, в котором он находится (но все же отправляет событие click, если вы нажимаете прямо под ним в пустом пространстве), но он перехватывает все mouseEvents для кнопок в панели в главный app.mxml.
Вот как это выглядит следующим образом: (не точный код, потому что его действительно большой)
<s:BorderContainer borderVisible="false" backgroundAlpha="0.5" bottom="0" visible="{mainViewStack.selectedIndex > 0}" width="100%">
<s:layout>
<s:HorizontalLayout verticalAlign="middle" paddingLeft="40" paddingRight="40" paddingBottom="0">
</s:HorizontalLayout>
</s:layout>
<s:Label right="60" fontSize="25" color="white" text="some text"/>
<s:Label right="60" fontSize="12" paddingTop="3" color="white" id="lblVersion"/>
<s:Spacer width="100%" />
<s:Image id="img_Back" buttonMode="true" click="img_back_clickHandler(event)"
source="@Embed(source='assets/images/undo.png')" toolTip="zurück"/>
<s:Image id="img_settings" buttonMode="true"
source="@Embed(source='/assets/images/gears.png')" toolTip="Einstellungen" />
<s:Image id="img_logout" buttonMode="true" click="img_logout_clickHandler(event)"
source="@Embed(source='assets/images/window_key.png')" toolTip="ausloggen"/>
<s:Image id="img_newWindow" buttonMode="true" click="img_newWindow_clickHandler(event)"
source="@Embed(source='assets/images/window_key.png')" toolTip="Neues Fenster"/>
</s:BorderContainer>
<mx:ViewStack id="mainViewStack" left="0" right="0" top="0" bottom="60" selectedIndex="0" change="mainViewStack_changeHandler(event)" >
<s:NavigatorContent label="someView" backgroundColor="#707572">
<someView id="someView"/>
</s:NavigatorContent>
<s:NavigatorContent label="someView" backgroundColor="#707572">
<someView id="someView"/>
</s:NavigatorContent>
<s:NavigatorContent label="someView" backgroundColor="#707572">
<someView id="someView"/>
</s:NavigatorContent>
</mx:ViewStack>
Если какие-либо из этих мнений есть DataGrid, который делает такие вещи, как я упоминал выше, то он будет перехватывать любого mouseEvents для кнопок в borderContainer.
<s:DataGrid id="tableList" width="200" height="100%" doubleClickEnabled="true" doubleClick="createSelectStatement(event)" >
<s:columns>
<s:ArrayList>
<s:GridColumn labelFunction="tableLabelFunction" headerText="Tables"/>
</s:ArrayList>
</s:columns>
</s:DataGrid>
Показать Ваш код. Без этого никто не сможет помочь. Это не похоже на проблему с искровым компонентом. – Brian
@Brian см. Обновленный вопрос –