Intereting Posts
Пользовательский тип файла в Android не работает Вызов функций javascript в веб-просмотре из класса активности Лучшая практика внедрения обратной связи Retrofit для воссозданной деятельности? Вставка контактов в Android 2.2 Продвигайте Android-устройство вверх Могу ли я добавлять теги в приложение в консоль Google Play? В Firebase 9.0.0 API, как проверить, что пользователь имеет действительный сеанс аутентификации или нет? Loader и LoaderManager – как определить, активен ли текущий загрузчик и работает ли он? Как получить путь SD_Card в android6.0 программно Использование цвета и color.darker в Android? Пользовательская тема препятствует цвету фона snackbar Как проверить, является ли система 12 или 24 часами? Дополнительные разрешения, чтобы приложение отображалось на всех устройствах и включало дополнительные функции на некоторых устройствах? Обработка конверсий и рендеринга нулевой копии на Android Android P2P (прямое подключение) через Интернет (за NAT)

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

Я пытаюсь найти решение для следующей проблемы. Приложение, на котором я работаю, требует возможности для пользователя создавать пользовательский интерфейс (компоновку простых виджетов) с помощью пользовательского построителя пользовательского интерфейса. Таким образом, пользователь может складывать виджеты (изображения, в основном, но 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 .