Помимо нескольких крайних случаев, каждое приложение, которое вы создаете, имеет некоторую форму пользовательского интерфейса. На Android это достигается с помощью объектов View
и ViewGroup
. В этой статье вы узнаете о некоторых наиболее часто используемых компонентах View
доступных для отображения контента, и познакомитесь с тем, как они используются.
Тебе легче учиться с видео? Почему бы не проверить наш курс:
1. Просмотров
Объекты View
используются специально для рисования контента на экране устройства Android. Хотя вы можете создавать экземпляры View
в своем Java-коде, самый простой способ их использования — через файл макета XML. Пример этого можно увидеть, когда вы создаете простое приложение «Hello World» в Android Studio. Файл макета — это файл с именем activity_main.xml , который выглядит примерно так.
1
2
3
4
5
|
<TextView
android:id=»@+id/hello_world»
android:layout_width=»wrap_content»
android:layout_height=»wrap_content»
android:text=»Hello World!»
|
В приведенном выше примере показан тип View
который будет отображаться на экране. layout_width
и layout_height
утверждают, что View
должен занимать столько места на экране, сколько необходимо для отображения текста «Hello World!». Атрибут id
позволяет ссылаться на это представление в вашем коде Java следующим образом:
1
2
|
setContentView(R.layout.activity_main);
TextView textView = (TextView) findViewById(R.id.hello_world);
|
Хотя вы можете установить атрибуты для представления в XML, вы также можете изменить атрибуты в своем коде Java, например, изменить текст вышеупомянутого TextView
.
1
|
textView.setText(«This is a changed View»);
|
Приведенный выше код обновляет текст TextView
до «Это измененное представление». Вот как это выглядит при запуске приложения.
Теперь, когда вы знаете, как работать с базовыми объектами View
, давайте рассмотрим некоторые из различных типов, доступных вам в Android SDK.
Просмотр просмотров
TextView
Это представление, которое мы использовали в приведенном выше примере. Основная задача TextView
— отображать текст на экране приложения Android. Хотя это может показаться простой задачей, класс TextView
содержит сложную логику, которая позволяет отображать размеченный текст, гиперссылки, номера телефонов, электронные письма и другие полезные функции.
ImageView
Как следует из названия, ImageView
разработан специально для отображения изображений на экране. Это может быть использовано для отображения ресурсов, хранящихся в приложении, или для отображения изображений, которые загружаются из Интернета.
Ввод и управление
Некоторые объекты View
используются не только для отображения контента пользователям. Иногда вам нужно получить какую-то информацию для управления вашими приложениями. К счастью, Android предоставляет несколько подклассов View
специально для этой цели.
Button
Класс Button
является одним из самых основных элементов управления, доступных в приложении. Он прослушивает щелчки от пользователя и вызывает метод в вашем коде, чтобы вы могли ответить соответствующим образом.
Switch
и CheckBox
Классы Switch
и CheckBox
имеют активное и неактивное состояние, между которыми можно переключаться. Это полезно для изменения настроек в приложении. Совместимые версии с Material Design доступны через библиотеку поддержки AppCompat .
EditText
Этот подкласс View
является расширением класса TextView
и позволяет пользователям обновлять содержащийся текст посредством ввода с клавиатуры.
Представления на основе адаптера
Хотя каждый из приведенных выше примеров View
является отдельным элементом, иногда требуется отобразить коллекцию элементов. Эти классы View
требуют использования Adapter
для обработки отображения надлежащего пользовательского интерфейса для элемента в коллекции.
ListView
Класс ListView
используется для отображения коллекции элементов в виде линейного прокручиваемого View
одним столбцом. Каждый отдельный элемент может быть выбран для отображения более подробной информации или выполнения действия, связанного с этим элементом.
GridView
Подобно классу ListView
класс GridView
принимает Adapter
и отображает элементы в нескольких столбцах на экране.
Spinner
Последний класс View
вы узнаете в этом уроке, это класс Spinner
. Он принимает Adapter
и отображает элементы в раскрывающемся меню при щелчке Spinner
чтобы пользователь мог выбрать элемент.
2. Просмотр групп
ViewGroup
— это невидимый объект, используемый для хранения других объектов View
и ViewGroup
для организации и управления макетом экрана. Объекты ViewGroup
используются для создания иерархии объектов View
(см. Ниже), чтобы вы могли создавать более сложные макеты. Тем не менее, чем проще вы можете сохранить макет, тем более он эффективен.
Объекты ViewGroup
могут создаваться так же, как и стандартные элементы View
в XML или в коде Java.
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
|
<?xml version=»1.0″ encoding=»utf-8″?>
<LinearLayout xmlns:android=»http://schemas.android.com/apk/res/android»
android:layout_width=»match_parent»
android:layout_height=»match_parent»
android:orientation=»vertical»>
<TextView
android:id=»@+id/hello_world»
android:layout_width=»wrap_content»
android:layout_height=»wrap_content»
android:text=»Hello World!»
<TextView
android:id=»@+id/hello_world_2″
android:layout_width=»wrap_content»
android:layout_height=»wrap_content»
android:text=»Hello World 2!»
</LinearLayout>
|
Хотя все классы ViewGroup
выполняют аналогичную задачу, каждый подкласс ViewGroup
существует для определенной цели. Давайте посмотрим на некоторые из них.
LinearLayout
LinearLayout
существует для отображения элементов в сложенном порядке, по горизонтали или по вертикали. Линейные макеты также можно использовать для назначения весов дочерним элементам View
, чтобы элементы располагались на экране в соотношении друг к другу.
RelativeLayout
Этот подкласс ViewGroup
позволяет отображать элементы на экране относительно друг друга, обеспечивая большую гибкость и свободу в том, как выглядит ваш макет по сравнению с LinearLayout
.
FrameLayout
Созданный для одновременного отображения одного дочернего представления, FrameLayout
рисует элементы в стеке и предоставляет простой способ отображения элемента на экранах различных размеров.
ScrollView
Расширение класса FrameLayout
, класс ScrollView
обрабатывает прокрутку своих дочерних объектов на экране.
ViewPager
Используемый для управления несколькими представлениями при одновременном отображении только одного, класс ViewPager
принимает Adapter
и позволяет пользователям проводить пальцем влево и вправо, чтобы увидеть все доступные элементы View
.
RecyclerView
Класс RecyclerView
— это подкласс ViewGroup
, связанный с классами ListView
и GridView
и предоставленный Google через библиотеку поддержки RecyclerView для более старых версий Android. Класс RecyclerView
требует использования шаблона проектирования держателей для эффективной переработки элементов и поддерживает использование LayoutManager
, декоратора и аниматора элементов, чтобы сделать этот компонент невероятно гибким за счет простоты.
CoordinatorLayout
Недавно добавленный в библиотеку поддержки проектирования, класс CoordinatorLayout
использует объект Behavior
для определения того, как дочерние элементы View
следует размещать и перемещать при взаимодействии пользователя с вашим приложением.
3. Пользовательские виды
Несмотря на то, что для ваших приложений есть множество классов View
и ViewGroup
, вы иногда хотите создать что-то новое, чтобы удовлетворить ваши потребности. В этом случае вы можете создать новый класс Java, который расширяет либо View
либо ViewGroup
, в зависимости от того, что вам нужно. Создание нового пользовательского подкласса View
выходит за рамки этой статьи, но вы можете найти больше информации в этом руководстве Envato Tuts + .
Вывод
В этом уроке вы узнали об одном из самых основных компонентов Android, макетах и представлениях. Учитывая, насколько эти компоненты фундаментальны для Android, вы будете постоянно узнавать о них новые вещи, продолжая работать с платформой Android, и вы найдете новые способы делать удивительные вещи, используя их в своих проектах.