2015-05-24 3 views
0

У меня есть объект ScrollBox, который Im вставляет в него некоторые объекты с выравниванием: = TalignLayout.Bottom и parent: = scrollbox, объекты будут вставлены успешно, но прокрутка не прокручивает или не показывает ScrollBars, любой какая-то помощь будет очень признательна, спасибо за вашу озабоченностьScrollBox не прокручивает

+2

Можете ли вы предоставить образец блока с кодом формы FMX, чтобы мы могли воспроизвести вашу проблему? –

+0

Является ли свойство 'ShowScrollBars' равным true? –

+0

yep у него установлен, но так как вставленные элементы имеют выровненный снизу, он не прокручивается:/ – user3374161

ответ

7

Скроллбокс представляет собой представление о своем содержании, где это содержимое может быть больше, чем область, содержащаяся в визуальной области самого окна прокрутки. Так, например:

enter image description here

Если на изображении выше черного прямоугольника является scrollbox и зеленый прямоугольник степень содержания, то scrollbox позволит пользователю прокручивать нижней части содержимого в поле зрения с помощью полос прокрутки (синий).

Если этот контент прокручивается так, что некоторые теперь от «верхней» части scrollbox и некоторые до сих пор выступает за «дно», то вы в конечном итоге с:

enter image description here

С скроллинга, установленным в автоматически, то до тех пор, пока есть содержимое выше или ниже видимой области прокрутки, появится полоса прокрутки, чтобы разрешить эту прокрутку.

Однако, если содержимое полностью содержится в прокрутке, то нет прокрутки контента и, следовательно, нет полос прокрутки. Важнейшим фактом является то, что выравнивание относится к области видимой области прокрутки. Так, например, если все содержимое выравнивается по верхней части scrollbox (и не выходит за пределы дна):

enter image description here

В вашем случае, установив выравнивание к нижней, вы обеспечиваете, что содержание расположена таким образом, чтобы оно располагалось в нижней части видимой области scrollbox:

enter image description here

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

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

Если ваш макет требует выравнивания нижнего уровня по сравнению с некоторыми другими элементами, вы можете создать конкретный контейнер только для этих предметов.

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

enter image description here

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

Смежные вопросы