TRadioButton, сброшенный на TListBoxItem, ведет себя хаотично при прокрутке
Я пытаюсь реализовать TListbox Firemonkey, который имеет несколько TListBoxItems. На одном из элементов TListBoxItem я разместил несколько кнопок TRadioButton, просто перетаскивая их на элемент TListBoxItem во время разработки. Когда приложение запускается, внешний вид кнопок нестабилен, когда TListBoxItem прокручивается с экрана и снова включается.
Другой вопрос TListBox здесь, в Stackru, указывает на то, что TListBox не содержит никаких элементов, кроме TListBoxItem. При этом, кажется, нет такого ограничения, которое я могу найти о TListBoxItem. Я обычно без проблем размещаю компоненты TEdit, TLabel и TComboBox таким образом.
Чтобы дублировать условие, запустите новое настольное приложение Firemonkey; поместите TListBox в форму и установите для него значение alClient; заполнить TListBox несколькими TListBoxItems; установите высоту TListBoxItems или Form, чтобы при запуске вы могли прокручивать TListBox; поместите три TRadioButtons на самый верхний элемент TListBoxItem; установите GroupName для всех TRadioButtons на одно и то же имя; запустить приложение; выберите TRadioButton так, чтобы это казалось выбранным; прокрутите TListBox, чтобы TListBoxItem, содержащий кнопки, прокручивал форму; прокрутить назад; продолжайте выбирать различные TRadioButtons и прокручивайте, пока не наблюдаются аномалии.
Вопросы: во-первых, и, возможно, наиболее важно, разрешено ли мне просто добавлять компоненты в TListBoxItem во время разработки? Мой предыдущий успех с этой техникой был просто случайным?
Во-вторых, а также важно для приложения, над которым я работаю, если это НЕ жизнеспособный подход к моему пользовательскому интерфейсу, кто-нибудь может предложить лучшие подходы?
ТИА
Я представил отчет в Центре качества Embarcadero, и после нескольких обменов с Томохиро-сан вместе с предложением Маркуса Адамса, что проблема связана с прокруткой, возникло следующее:
При отслеживании различных упомянутых случаев выясняется, что существует ряд других случаев, связанных с этим из-за использования прокрутки. Когда элемент прокручивается с экрана, а затем прокручивается назад, система, очевидно, повторно применяет стили к элементам, которые возвращаются в видимость. По крайней мере, в тех немногих случаях, которые я проследил, кажется, что это так. Именно на этом повторном применении стиля и рендеринга проблема, кажется, возникает. В моих собственных примерах я добавил кнопку, которая отображает свойство IsChecked для элементов управления, и рендеринг не отражает свойство правильно во всех случаях, предполагая, что это стиль / рендеринг, который вызывает проблемы.
Связанные проблемы, которые я смог найти:
КК 120593 КК 117381 КК 119638 КК 117658
Я жду разрешения.
1 ответ
Я столкнулся с той же проблемой. Я не нашел решения, но в качестве обходного пути я в итоге просто заменил переключатели на флажки и добавил код, чтобы они вели себя так же, как переключатели. Например, разрешить выбор только одного из группы флажков...