Пользовательский макет MAUI не показывает никаких элементов управления, но элементы управления имеют правильное положение и размер,

Я настраиваю имя макета ConstraintLayout в соответствии с AbsoluteLayout в MAUI.

Как и у AbsoluteLayout, есть класс LayoutManager, я переопределяю методы Measure и ArrangeChildren в этом классе.

У него также есть класс ConstrainLayout. public class ConstraintLayout : Layout, IConstraintLayout

Исходный код в ConstraintLayout.Maui

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

Мне нужно что-то установить в Builder или Handler? Я не нахожу документ об этом.

1 ответ

я вижу это AbsoluteLayoutработает через LayoutManager.

Находить AbsoluteLayout.cs. Смотрите его:

          protected override ILayoutManager CreateLayoutManager()

Сделайте подобное, но найдите AbsoluteLayoutManager.cs, и сделать аналог ConstraintLayoutManagerкоторый использует вашу логику ограничений. Тогда ваш метод в ConstraintLayoutбудет:

      protected override ILayoutManager CreateLayoutManager()
{
    return new ConstraintLayoutManager(this);
}

ПРИМЕЧАНИЕ. Не делайте мои (теперь удаленные) комментарии ConstraintLayout : AbsoluteLayout .... Вернитесь к исходному ConstraintLayout : Layout, IConstraintLayout.

Другие вопросы по тегам