Преобразование RemoteView в вид

Я пытаюсь отобразить экземпляр RemoteViews на Canvas, как и обычный просмотр. Я использую

RemoteViews.apply(context, null)

и он возвращает FrameLayout со всеми представлениями, вложенными и правильно измеренными (расположение и размер верны), но после использования .draw на возвращенном представлении он отображает все элементы без значений - TextViews пуст, AnalogClock - reset в 00:00 и т.д.

Любые идеи? Я потерян: (

Ответ 1

Не уверен, что вопрос остается актуальным. Тем не менее, вот мой опыт работы с RemoveViews. Похоже, вы не можете просто вызвать draw() в возвращаемом представлении. Вы должны добавить это представление в родительский контейнер, чтобы сделать его частью глобальной иерархии представлений. Например, у вас есть Activity с одним FrameLayout в нем. Ваш код будет выглядеть следующим образом.

FrameLayout parent = findViewById(R.id.container);
View view = RemoteViews.apply(getActivity(), parent);
parent.addView(view);

Теперь вы сможете увидеть тесты. Если вы установите слушателей, они тоже будут работать правильно.