Общие элементы Android XML между страницами? Фреймы?

#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>