#android #xml #header #skinning
#Android #xml #заголовок #скининг
Вопрос:
Я создаю скин для приложения, и мне было интересно, есть ли способ сохранить одинаковые общие элементы между XML-макетами без постоянного копирования одного и того же кода.
Например, у меня есть верхний и нижний колонтитулы и фон, которые будут одинаковыми для большинства страниц. Могу ли я создать «общий» xml, содержащий верхний и нижний колонтитулы, и просто загрузить отдельную страницу в виде фрейма внутри нее?
Я не уверен, как бы я ссылался на эту отдельную страницу в XML. Возможно, я мог бы изменить идентификатор со стороны Java в функции onCreate, хотя сейчас это кажется более трудоемким, если бы я что-то изменил в верхнем и нижнем колонтитулах в будущем, мне не пришлось бы изменять каждое действие приложения.
Спасибо за любую информацию!
Ответ №1:
Я думаю, что это тег inclue, который вы ищете. Пример:
<include layout="@layout/bar_header_top" />
Комментарии:
1. Хорошо, я переставил вещи и вставил include, отлично отображается в XML Builder, вылетает при фактической загрузке приложения прямо в setContent (R.layout.x), пытаюсь понять, почему это может произойти, дайте мне знать, если у вас есть какое-либо представление, спасибо
2. Это, безусловно, могло бы помочь, если бы вы вставили в stacktrace сбой из logcat.
Ответ №2:
Создайте класс Java, который расширяет представление, содержащее все элементы заголовка, и класс, содержащий все элементы нижнего колонтитула, и реализуйте их в каждом представлении следующим образом
<LinearLayout>
<com.[package].[classname of header] />
-- content here --
<com.[package].[clasname of footer] />
</LinearLayout>