Применяем тег include для улучшения работы с layout файлами
Главная » Применяем тег include для улучшения работы с layout файлами

В этом небольшом уроке рассмотрим простой, но полезный прием оптимизации xml файлов вашего Android приложения. Если в приложении присутствует несколько довольно сложных файлов с множеством компонентов, то может возникнуть проблема, когда понадобится что то переделать или усовершенствовать какой нибудь важный элемент, например, рекламный блок  или какую нибудь панельку в приложении - поменять ее размер или положение. Если создавать этот блок в каждом файле, то при желании его изменить, вам придется переделывать все коды в каждом файле, плюс ко всему, дублирование одинакового кода снижает скорость работы приложения и попусту захламляет код. Для решения подобной проблемы можно приспосабливать фрагменты, которые уже рассматривались ранее. Но есть и более простое решение, которое часто может сильно пригодиться, а именно - использование в xml файлах тега <include>. Разберем простенький пример организации интерфейса Android приложения с использованием тега <include>.

Создадим новый проект, выбираем Blank Activity. Для реализации использования тега <include> нужно создать отдельный xml layout файл, в котором задать тот элемент (или много элементов), которые будут дублироваться в разных layout файлах. Например, мы хотим на каждой странице приложения пихать аналоговые часики (ничего лучше я не придумал, вы можете создать что то свое). Для этого создадим новый xml файл по адресу res/layout/ по имени separated_item.xml и добавим в него эти часики:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
 android:layout_width="fill_parent"
 android:layout_height="fill_parent"
 android:background="#ffffff"
 android:padding="5dp" >
 <AnalogClock
 android:layout_width="50pt"
 android:layout_height="50pt" />
</RelativeLayout>

Теперь открываем файл activity_main.xml и создадим здесь определенный интерфейс, добавив внизу экрана созданные отдельно часы с помощью тега <include>:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
 xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
 android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
 android:paddingRight="@dimen/activity_horizontal_margin"
 android:paddingTop="@dimen/activity_vertical_margin"
 android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity">
 <Button
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:text="Кнопка"
 android:id="@+id/button" />

 <TextView
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:text="Добавим новый сторонний объект"
 android:id="@+id/textView"
 android:layout_alignBottom="@+id/button"
 android:layout_alignParentRight="true"
 android:layout_alignParentEnd="true" />

 <include
 android:id="@+id/footerView"
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:layout_alignParentBottom="true"
 layout="@layout/separated_item"
 android:layout_gravity="bottom"
 android:layout_toLeftOf="@+id/textView"
 android:layout_toStartOf="@+id/textView" />
</RelativeLayout>

Как видите, реализация предельно проста и внизу экрана уже появились наши часы:

Добавленные часики

Реализация тега <include> предельно проста, основная строчка в его коде - это  layout="@layout/separated_item", которая указывает на тот xml файл, который мы хотим отобразить, все остальные команды аналогичны к любим другим элементам интерфейса.

Если мы хотим как то изменить отображаемые элементы, вообще добавить что то другое, то открываем файл separated_item.xml и делаем там все, что угодно - оно автоматически отобразиться в activity_main.xml или любом другом файле, где вы захотите это использовать. Довольно просто, но полезно.

По - экспериментируйте над тегом <include> и убедитесь, что он удобен и полезен в использовании.

Категория: Уроки программирования | Просмотров: 714 | Добавил: Oleg | Теги: тег include, оптимизируем приложения, улучшаем быстродействие | Рейтинг: 0.0/0
Всего комментариев: 0
avatar