Intereting Posts
Android – активность, которая не заполняет родительский экран Как создать файл TwoLineListItem? DequeueBuffer: невозможно удалить несколько буферов без установки количества буферов Android – пакет org.apache.http не существует sdk 23 Как включить / выключить все звуки из программ доступности в программном обеспечении Android? Разница между addOnGlobalLayoutListener и onWindowFocusChanged? Как преобразовать время в формате YYYY-MM-DDTHH: mm: ss.SSSZ в часовой пояс по умолчанию? Несколько действий, идентичные onCreateOptionsMenu, onOptionsItemSelected и onKeyDown. Могу ли я каким-то образом повторно использовать код? GetWritableDatabase, называемая рекурсивно Отображать простой текстовый ярлык / дескриптор, когда пользователь нажимает на OverlayItem в MapView Android: Кто-нибудь знает, как захватить видео? Как настроить gson для исключения 0 целых значений Java.lang.IllegalStateException: не удается найти метод onClick для кнопки в Android Studio Android ICS API 14 – распознавание лица с помощью камеры. Ошибка при выполнении периодической синхронизации

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

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

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

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

Solutions Collecting From Web of "Создавать, хранить и накачивать пользовательский макет во время выполнения"

Проверьте методы раздувания 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 .