Intereting Posts
NETWORK_PROVIDER не предоставляет обновленные местоположения Kivy: значок межплатформенного уведомления Плагин Android maven, неспособный развернуть устройство Как поддерживать Android-приложение неограниченно долго? Как установить тип mime для прикрепления электронной почты Android Обратные вызовы SipRegistrationListener не запускаются Что именно влияет на URLConnection.setDoOutput ()? Прикладная сила закрывается при запуске Как сделать Android SlidingDrawer слайдом слева? Как использовать сенсорное событие детского просмотра в touchlistener родительского вида? Не удается отправить сообщение с Android Wear на хост-устройство Вызов Webservice с устройства Android не работает, хорошо работает на эмуляторе Непонятное текущее учебное пособие по поиску местоположения в Android Изменение шрифта заголовка приложения в android Как программно получить список зарегистрированных пользователей в Firebase

Создавать, хранить и накачивать пользовательский макет во время выполнения

Я пытаюсь найти решение для следующей проблемы. Приложение, на котором я работаю, требует возможности для пользователя создавать пользовательский интерфейс (компоновку простых виджетов) с помощью пользовательского построителя пользовательского интерфейса. Таким образом, пользователь может складывать виджеты (изображения, в основном, но TextViews и EditText, а также) на холсте, перемещать их и т. Д. Пользовательский интерфейс должен храниться в базе данных для будущего использования. Таким образом, должен быть некоторый механизм загрузки и раздувания этого пользовательского интерфейса. Это основная проблема.

Моя первая идея заключалась в том, чтобы полагаться на стандартный механизм компоновки Android. К сожалению, LayoutInflater работает с XML, скомпилированным в двоичную форму. И, насколько я знаю, невозможно скомпилировать XML-строку в двоичное представление во время выполнения.

Есть ли у кого-нибудь опыт с такой проблемой? Какие-либо предложения?

Проверьте методы раздувания LayoutInflater . Фактически вы можете использовать любой XmlPullParser для использования в качестве своего источника, который, в свою очередь, может быть сконструирован для любого Reader .

Другими словами, вы можете использовать практически любой поток символов в качестве источника xml для раздувания.

Начало документов XmlPullParser дает вам базовый план создания парсера pull:

 XmlPullParserFactory factory = XmlPullParserFactory.newInstance(); factory.setNamespaceAware(true); XmlPullParser xpp = factory.newPullParser(); xpp.setInput(new StringReader("<foo>Hello World!</foo>")); 

Обновление – это не сработает, как указано в документах LayoutInflater .