Android: как использовать XML для пользовательского макета представления

Я прихожу из мира GWT и UIBinder, где я привык определять пользовательские компоненты, расширяя Composite, а затем помещая весь код макета UI в файл MyComponent.ui.xml. Это очень хороший способ создания компонентов из небольших частей.

Я пытаюсь добиться такого же эффекта на Android с пользовательскими представлениями. Я смог программно расширить View , а затем добавить объекты, вызвав addView(textView) . Я хотел бы иметь возможность сделать это в XML, но я не вижу, как связать файл макета xml с представлением (кроме основного файла res/layout/main.xml , который предоставляет основной макет для приложения ,

Как я могу разместить свои собственные представления в XML?

Изменить: Мой вопрос был неясным. То, что я хочу сделать, это my_widget.xml файл my_widget.xml с моим настроенным представлением. Затем в my_widget.xml я хотел бы определить различные TextViews и т. Д. И подключить их к моему классу View.

Чтобы построить Views из XML, используйте LayoutInflater .

Используйте полное имя своего пользовательского класса просмотра вместо одного из встроенных представлений. Вот, например, макет, который заполняет окно вашим классом:

 <?xml version="1.0" encoding="utf-8"?> <my.package.MyCustomView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/my_view" android:layout_width="fill_parent" android:layout_height="fill_parent" /> 

Вы можете использовать findViewById (int id) с идентификатором, определенным в XML. См. Пример в документе android doc здесь (прокрутите вниз до идентификаторов ).

Intereting Posts
Вызов собственных функций переносимой библиотеки Внеэкранная рендеринг с использованием PixelBuffer или FBO для сохранения всех графических изображений в растровом (а затем в bmp / ​​jpg) желаемого размера (> 4096) с использованием OpenGL ES 2.0 Kotlin-андроид: нерешенные ссылки привязки данных Запрос руководства по созданию пользовательского SeekBar в Android. (Как показано на рисунке) Расписание таймера Android vs scheduleAtFixedRate Как андроид Xml-атрибут android: onClick = "…" работает за кулисами? Утечка контекста Android в AsyncTask MissingResourceException: не удается найти пакет для базового имени sun.util.logging.resources.logging, locale en_US Android Robotium – Как управлять порядком выполнения тестовых мест? Android.app.Application подкласс, onTerminate не вызывается Android: создание файла с использованием метода createNewFile () Блокируйте мобильный сайт, чтобы открыть мое приложение Android deeplink – Google Chrome Есть ли способ поместить Android WIFI (droid handset) в режим беспорядочного мониторинга? Есть ли сторонняя библиотека для Android Pinch Zoom <AudioRecord> "Не удалось получить аудиовход для источника записи 1"