Пользовательский макет 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
.