Главная » Применяем тег 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> и убедитесь, что он удобен и полезен в использовании. | |
|
Всего комментариев: 0 | |