Russian (Русский) - Change language

Пример 2. Шаг 14: Описание поля Ingredients

Как можно видеть, на всех тестовых изображениях список ингредиентов представляет собой текст произвольной формы, всегда расположенный под заголовком поля Ingredients, но выше разделителя, расположенного над заголовком поля Cooking.

Для удобства описания вышеперечисленных объектов и ограничения числа гипотез необходимо объединить их в составной элемент типа Group. Для этого:

  1. Создайте составной элемент RecipeContents (тип Group).
  2. В составе элемента RecipeContents создайте элемент IngredientsHeader (тип Static text), соответствующий заголовку поля Ingredients. Свойства элемента задаются по аналогии со свойствами элемента Recipe (см. Шаг 10).
  3. В составе элемента RecipeContents создайте элемент Separator (тип Separator), соответствующий разделителю, расположенному над заголовком поля Cooking. В свойствах элемента (закладка Separator) укажите ориентацию разделителя - Horizontal. Задайте условия поиска (диалог свойств элемента, закладка Relations) - ниже, чем заголовок Ingredients: (Below элемента IngredientsHeader).
    При наложении гибкого описания можно увидеть, что иногда за разделитель принимается нижняя граница изображения.
    Во избежание подобной ситуации необходимо задать дополнительное условие поиска. Для этого в поле Advanced pre-search relations (диалог свойств элемента, закладка Advanced) задайте дополнительное условие поискаИскать разделитель ближайший к заголовку Ingredients:. На языке описания FlexiLayout данное условие выглядит следующим образом:
    Nearest: SearchElements.RecipeContents.IngredientsHeader;
    Замечание. Данное условие также можно задать через интерфейс программы. Для этого перейдите на закладку Relations , отметьте опцию Nearest и в выпадающем списке To выберите Element и укажите IngredientsHeader в качестве Reference element.
  4. Произведем наложение гибкого описания еще раз.

    Показать пример

  1. Также в поле Advanced pre-search relations (диалог свойств элемента, закладка Advanced) можно задать дополнительное условие поискаИскать заголовок в верхней половине изображения. На языке описания FlexiLayout данное условие выглядит следующим образом:
    Above: PageRect.top + PageRect.Height/2;
  2. В составе элемента RecipeContents создайте элемент Ingredients (тип Paragraph), соответствующий полю Ingredients.
    Задайте условия поиска (диалог свойств элемента, закладка Relations) - ниже, чем заголовок Ingredients: (Below элемента IngredientsHeader), но выше разделителя (Above элемента Separator).
    Просмотр результатов наложения гибкого описания показывает, что на всех тестовых изображениях поле Ingredients находится устойчиво.

Процесс создания блока Ingredients аналогичен процессу создания блока RecipeNumber. Отличие заключается в том, что для блока Ingredients в качестве исходного элемента необходимо указать элемент Ingredients.

10.11.2020 12:08:08


Please leave your feedback about this article