Первый постер, новый для Android, и мне кажется, что я столкнулся с проблемой:
Я создаю динамический макет, состоящий из нескольких идентичных «составных» объектов (в основном это «плавающие» LinearLayouts, каждый из которых содержит значок (ImageView) и заголовок (TextView)). Координаты (x, y) каждого LinearLayout могут изменяться в зависимости от действий пользователя и требуют точного размещения (т. Е. Нельзя использовать RelativeLayout и т. Д.), Поэтому я размещаю их внутри AbsoluteLayout.
Во время onCreate () я добавляю каждый из этих объектов в качестве дочернего представления внутри объекта AbsoluteLayout, а затем устанавливаю (x, y) вручную. Пока проблем нет, отлично работает, начальный макет идеален.
Проблема:
После начального onCreate () я не могу изменить положение (x, y) этих объектов на экране. Я могу обновить их layoutParams, но экранная раскладка (внутри AbsoluteLayout) никогда не обновляется. Я пробовал forceLayout (), invalidate (), requestLayout (), ни один из них не работает.
Есть ли проблема с моим основным подходом, или я что-то упускаю?
Я думаю о том, чтобы перейти к SurfaceView и просто выполнить рендеринг сложным способом, но мой код работает на 99% великолепно, и я не хочу менять его, если мне это не нужно. Единственная проблема заключается в том, что менеджер компоновки просто отказывается регистрировать изменения положения для моих дочерних объектов.
Помогите, что я делаю не так?