Adobe Flex/AIR: Прокрутка субкомпонента, не целого окна

В случае если не нужно быть регулярным выражением…

$string = 'DZ9243/XSHAGT FFGD JERSE XS2 DZ9232/MHAGT SUUMTE KNI M10 DZ9232/LHAGT SUMMER KNI L6';

$parts = explode(' ', $string);
$results = [];
$i = -1;

foreach($parts as $part) {
  strpos($part, '/') !== false ? $results[++$i] = $part : $results[$i] .= ' ' . $part;
}

var_dump($results);
5
задан Community 23 May 2017 в 11:55
поделиться

3 ответа

Найденный решением.

Похож на единственный способ предотвратить VBox от агрессивного расширения его вертикального пространства (и то, чтобы вынуждать его родителей вырастить полосы прокрутки) должен перенести VBox в Холст.

Существует удобный небольшой компонент здесь, назван ScrollableVBox, который выполняет обходное решение в то время как заботящийся о нескольких проблемах bookkeping (как добавление и удаление детей к VBox, передавая их вокруг обертки Cavas).

1
ответ дан 14 December 2019 в 09:03
поделиться

Ваша проблема походит на много как то, с которым я боролся некоторое время назад. Я нашел свой ответ из этого обсуждения: просто отключите measure() реализация Box.

Это было довольно легкой фиксацией, которая работала отлично в моем случае и не вызвала "сопутствующего ущерба". Ваши результаты могут варьироваться.

package whatever
{
    import mx.containers.Box;

    /**
    * A Box that has no measure() implementation.
    * 
    * <p>
    * See http://old.nabble.com/-flex_india%3A3318--Size-layout-issues-with-respect-to-parent-containers-to12882767.html
   *  for more info.
    * </p>
    */
    public class NonMeasuredBox extends Box
    {
        /**
        * Constructor
        */
        public function NonMeasuredBox():void
        {
            super();
        }

        override protected function measure():void { /* disabled */ }
    }
}
0
ответ дан 14 December 2019 в 09:03
поделиться

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

Негласно, HBox или VBox устанавливают measuredMinWidth и measuredMinHeight свойства в его мере () функция для соответствия размерам, требуемым его детьми. Родительский контейнер будет соблюдать ту рекомендацию, и задача прокрутки перемещает дисплейный список вверх.

решение hasseg работает во многих случаях, потому что оно мешает контейнеру иметь размеры, но это - вид hacky. Вот то, что можно обойтись без создания заменяющих подклассов для контейнеров. На контейнерном экземпляре, который Вы хотите прокрутить, установите minWidth или minHeight к 0. Это будет иметь приоритет по measuredMinWidth или measuredMinHeight свойствам того контейнера, позволяя родителю установить фактический размер на что-то более управляемое.

6
ответ дан 14 December 2019 в 09:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: