Android Runtime Layout - PullRequest
       3

Android Runtime Layout

1 голос
/ 01 марта 2011

В моем приложении andriod я получаю XML во время выполнения.Как накачать представление из некомпилированного xml?

xml выбирается пользователем из его файловой системы.Это не скомпилировано.Следовательно, у меня нет никаких ссылок, таких как "R.layout.my_layout"

Ответы [ 2 ]

1 голос
/ 07 марта 2011

В настоящее время это невозможно сделать с помощью стандартных API-интерфейсов Android. Файлы XML, содержащие макет, должны быть обработаны во время сборки, чтобы иметь возможность их раздувать во время выполнения

См. Документацию LayoutInflater здесь http://developer.android.com/reference/android/view/LayoutInflater.html

По соображениям производительности просмотр инфляции в значительной степени зависит от предварительной обработки XML файлы, которые сделаны во время сборки. Поэтому в настоящее время невозможно использовать LayoutInflater с XmlPullParser поверх простого XML-файла во время выполнения; это только работает с XmlPullParser, возвращенным из скомпилированного ресурса (файл R.something.)

Один довольно утомительный вариант - написать собственный синтаксический анализатор XML для синтаксического анализа XML и программного построения макета.

1 голос
/ 01 марта 2011

Попробуйте LayoutInflator.inflate () :

LayoutInflator.from(this).inflate(R.layout.my_layout, parent, true);

, где this относится к содержанию Activity, а parent - это раздуваемая вами группа просмотра.в.Вы также можете использовать это с null parent (и false), если вы просто хотите вернуть иерархию представлений и добавить ее в ViewGroup самостоятельно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...