Основы Android Kotlin 02.1: Линейная компоновка с использованием редактора компоновки

Эта практическая работа входит в курс «Основы Android Kotlin». Вы получите максимальную пользу от этого курса, если будете выполнять практические работы последовательно. Все практические работы курса перечислены на целевой странице практической работы «Основы Android Kotlin» .

Что вам уже следует знать

  • Создание простого приложения для Android на Kotlin.
  • Запуск приложения Android на эмуляторе или на устройстве.
  • Основы LinearLayout .
  • Создание простого приложения, использующего LinearLayout и TextView .

Чему вы научитесь

  • Как работать с View и ViewGroup .
  • Как упорядочить представления в Activity с помощью LinearLayout.
  • Как использовать ScrollView для отображения прокручиваемого содержимого.
  • Как изменить видимость View .
  • Как создавать и использовать строковые и размерные ресурсы.
  • Как создать линейный макет с помощью редактора макетов Android Studio.

Что ты будешь делать?

  • Создайте приложение AboutMe.
  • Добавьте TextView в макет для отображения вашего имени.
  • Добавьте ImageView.
  • Добавьте ScrollView для отображения прокручиваемого текста.

В приложении AboutMe вы можете поделиться интересными фактами о себе или настроить приложение для друга, члена семьи или домашнего животного. В приложении отображается имя, кнопка «ГОТОВО» , изображение звёздочки и прокручиваемый текст.

В этом задании вы создадите проект AboutMe Android Studio.

  1. Откройте Android Studio, если он еще не открыт.
  2. Если проект уже открыт в Android Studio, выберите Файл > Создать > Новый проект .


  3. Если проект еще не открыт, выберите + Начать новый проект Android Studio в диалоговом окне Добро пожаловать в Android Studio .


  4. В диалоговом окне «Создать новый проект» на вкладке «Телефон и планшет» выберите шаблон «Пустая активность» . Нажмите «Далее» .


  5. В следующем диалоговом окне «Создать новый проект» задайте следующие параметры и нажмите «Готово» .

Атрибут

Ценить

Имя приложения

Обо мне

Название компании Android

com.android.example.AboutMe (или ваш собственный домен)

Сохранить местоположение

Оставьте местоположение по умолчанию или измените его на предпочитаемый вами каталог.

Язык

Котлин

Минимальный уровень API

API 19: Android 4.4 (KitKat)

Этот проект будет поддерживать мгновенные приложения

Оставьте этот флажок снятым.

Использовать артефакты AndroidX

Установите этот флажок.

Android Studio потребуется некоторое время для генерации файлов проекта.

  1. Запустите приложение. На пустом экране вы увидите строку «Hello World».

Шаблон Empty Activity создаёт одну пустую активность Mainactivity.kt . Шаблон также создаёт файл макета activity_main.xml . Корневым элементом ViewGroup файла макета является ConstraintLayout , а его содержимым является один TextView .

В этой задаче вы измените сгенерированную корневую ViewGroup на LinearLayout . Вы также расположите элементы пользовательского интерфейса вертикально.

Просмотреть группы

ViewGroup — это представление, которое может содержать дочерние представления, то есть другие представления и группы представлений. Представления, составляющие макет, организованы в виде иерархии представлений с корнем в виде группы представлений.

В группе представлений LinearLayout элементы пользовательского интерфейса располагаются либо горизонтально, либо вертикально.

Измените корневой макет так, чтобы он использовал группу представлений LinearLayout :

  1. Выберите панель «Проект» > «Android» . В папке app/res/layout В папке откройте файл activity_main.xml .
  2. Выберите вкладку Текст и измените корневую группу представлений с ConstraintLayout на LinearLayout .
  3. Удалите TextView . В элементе LinearLayout добавьте атрибут android:orientation и задайте ему значение vertical .

До:

<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
   xmlns:app="http://schemas.android.com/apk/res-auto"
   xmlns:tools="http://schemas.android.com/tools"
   android:layout_width="match_parent"
   android:layout_height="match_parent"
   tools:context=".MainActivity">

   <TextView
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:text="Hello World!"
       app:layout_constraintBottom_toBottomOf="parent"
       app:layout_constraintLeft_toLeftOf="parent"
       app:layout_constraintRight_toRightOf="parent"
       app:layout_constraintTop_toTopOf="parent" />

</androidx.constraintlayout.widget.ConstraintLayout>

После:

<LinearLayout
       xmlns:android="http://schemas.android.com/apk/res/android"
       xmlns:tools="http://schemas.android.com/tools"
       xmlns:app="http://schemas.android.com/apk/res-auto"
       android:layout_width="match_parent"
       android:layout_height="match_parent"
       android:orientation="vertical"
       tools:context=".MainActivity">

</LinearLayout>

Редактор макетов — это инструмент визуального дизайна в Android Studio. Вместо того, чтобы вручную писать XML-код для создания макета приложения, вы можете использовать редактор макетов для перетаскивания элементов пользовательского интерфейса в редактор дизайна.

Чтобы открыть редактор макетов, перейдите на вкладку «Дизайн» . На снимке экрана ниже показаны элементы редактора макетов.

Редактор дизайна : отображает визуальное представление макета экрана в режиме дизайна, чертежа или обоих. Редактор дизайна — это основная часть редактора макетов.

Панель инструментов: содержит кнопки для настройки внешнего вида макета в редакторе дизайна и изменения некоторых его атрибутов. Например, чтобы изменить отображение макета в редакторе дизайна, используйте кнопку «Выбрать область дизайна». раскрывающееся меню:

  • Используйте Design для предварительного просмотра вашего макета в реальном времени.
  • Используйте Blueprint , чтобы видеть только контуры для каждого вида.
  • Используйте Design + Blueprint , чтобы увидеть оба дисплея рядом.

Палитра : содержит список представлений и групп представлений, которые можно перетаскивать в макет или на панель дерева компонентов .

Атрибуты : отображает атрибуты текущего выбранного представления или группы представлений. Для переключения между полным списком атрибутов и часто используемыми атрибутами используйте значок в верхней части панели.

Дерево компонентов: отображает иерархию макета в виде дерева представлений. Дерево компонентов полезно, когда у вас есть небольшие, скрытые или перекрывающиеся представления, которые невозможно выбрать в редакторе дизайна.

Шаг 1: Добавьте TextView

  1. Откройте файл res/layout/activity_main.xml , если он еще не открыт.
  2. Перейдите на вкладку «Текст». и проверьте код. В коде корневой группой представлений является LinearLayout . ( Группы представлений — это представления, содержащие другие представления.)

    LinearLayout имеет обязательные атрибуты layout_height , layout_width и orientation , которая по умолчанию vertical .
  3. Перейдите на вкладку «Дизайн» , чтобы открыть редактор макетов.
  1. Перетащите текстовое представление из панели «Палитра» в редактор дизайна.


  2. Обратите внимание на панель «Дерево компонентов» . Новое текстовое представление размещено как дочерний элемент родительской группы представлений — LinearLayout .

  3. Откройте панель «Атрибуты» , если она еще не открыта. (Чтобы открыть панель, дважды щелкните недавно добавленный TextView в редакторе дизайна.)
  4. Задайте следующие атрибуты на панели «Атрибуты» :

Атрибут

Ценить

ИДЕНТИФИКАТОР

name_text

текст

Введите своё имя. (В одном из текстовых полей отображается значок гаечного ключа, указывающий на то, что оно относится к пространству имён tools . Поле без гаечного ключа относится к пространству имён android — это то текстовое поле, которое вам нужно.)

textAppearance > textSize

20sp

textAppearance > textColor

@android:color/black

textAppearance > textAlignment

Центр

Шаг 2: Создание строкового ресурса

В дереве компонентов , рядом с TextView, вы увидите значок предупреждения. . Чтобы увидеть текст предупреждения, щелкните значок или наведите на него указатель мыши, как показано на снимке экрана ниже.

Чтобы устранить предупреждение, создайте строковый ресурс:

  1. На панели «Атрибуты» нажмите на три точки рядом с атрибутом текста , который вы установили для своего имени. Откроется редактор ресурсов.


  2. В диалоговом окне Ресурсы выберите Добавить новый ресурс > Новое строковое значение .
  3. В диалоговом окне «Новый ресурс строкового значения» в поле «Имя ресурса» укажите значение « name . В поле «Значение ресурса» укажите своё имя. Нажмите «ОК» . Обратите внимание, что предупреждение исчезло.


  4. Откройте файл res/values/strings.xml и найдите недавно созданный строковый ресурс с именем name .
<string name="name">Aleks Haecky</string>

Шаг 3: Создайте ресурс измерения

Вы только что добавили ресурс с помощью редактора ресурсов. Вы также можете извлечь ресурсы в редакторе XML-кода для создания новых ресурсов:

  1. В файле activity_main.xml перейдите на вкладку Текст .
  2. В строке textSize нажмите на число ( 20sp ) и нажмите Alt+Enter ( Option+Enter на Mac). В контекстном меню выберите «Извлечь ресурс измерения» .
  3. В диалоговом окне «Извлечение ресурса» введите text_size в поле «Имя ресурса» . Нажмите «ОК» .


  4. Откройте файл res/values/dimens.xml чтобы увидеть следующий сгенерированный код:
<dimen name="text_size">20sp</dimen>
  1. Откройте файл MainActivity.kt и найдите следующий код в конце функции onCreate() :
setContentView(R.layout.activity_main)

Функция setContentView() подключает файл макета к Activity . Указанный файл ресурсов макета — R.layout.activity_main :

  • R — это ссылка на ресурс. Это автоматически сгенерированный класс с определениями всех ресурсов в вашем приложении.
  • layout.activity_main указывает, что ресурс представляет собой макет с именем activity_main .
  1. Запустите приложение. Отобразится TextView с вашим именем.

Когда вы смотрите на экран своего приложения, ваше имя отображается в верхней части экрана, поэтому теперь вам нужно добавить отступы и поля.

Отступы и поля

Отступ — это пространство внутри границ представления или элемента. Это пространство между краями представления и его содержимым, как показано на рисунке ниже.

Размер представления учитывает его отступы. Ниже перечислены часто используемые атрибуты отступов:

  • android:padding задает отступы для всех четырех краев представления.
  • android:paddingTop задает отступ для верхнего края.
  • android:paddingBottom задает отступ для нижнего края.
  • android:paddingStart задает отступ для «начального» края представления.
  • android:paddingEnd задает отступ для «конечного» края представления.
  • android:paddingLeft задает отступ для левого края.
  • android:paddingRight задает отступ для правого края.

Отступ (Margin) — это пространство, добавляемое за пределы границ представления. Это расстояние от края представления до его родительского элемента, как показано на рисунке выше. Ниже приведены часто используемые атрибуты отступа:

  • android:layout_margin задает отступ для всех четырех сторон представления.
  • android:layout_marginBottom определяет пространство за пределами нижней стороны этого представления.
  • android:layout_marginStart определяет пространство за пределами «начальной» стороны этого представления.
  • android:layout_marginEnd определяет пространство на конечной стороне этого представления.
  • android:layout_marginLeft определяет пространство с левой стороны этого представления.
  • android:layout_marginRight определяет пространство с правой стороны этого представления.

Шаг 1: Добавьте отступы

Чтобы оставить пространство между вашим именем и верхним краем текстового поля name , добавьте верхний отступ.

  1. Откройте файл activity_main.xml на вкладке «Дизайн» .
  2. В дереве компонентов или в редакторе дизайна щелкните текстовое представление, чтобы открыть панель его атрибутов .
  3. В верхней части панели «Атрибуты» щелкните значок двойной стрелки. чтобы увидеть все доступные атрибуты.
  4. Найдите параметр «Padding», разверните его и нажмите на три точки ... рядом с верхним атрибутом. Откроется диалоговое окно « Ресурсы» .
  5. В диалоговом окне Ресурсы выберите Добавить новый ресурс > Новое значение измерения .
  6. В диалоговом окне «Ресурс нового значения измерения» создайте новый ресурс dimen с именем small_padding и значением 8dp .

    Аббревиатура dp расшифровывается как «density-independent» (независимый от плотности ). Если вы хотите, чтобы элемент пользовательского интерфейса выглядел одинаково на экранах с разной плотностью, используйте dp в качестве единицы измерения. Однако при указании размера текста всегда используйте sp (масштабируемые пиксели).
  7. Нажмите ОК .

Шаг 2: Добавьте поле

Чтобы отодвинуть текст name от края родительского элемента, добавьте верхнее поле.

  1. На панели «Атрибуты» найдите «margin», чтобы найти Layout_Margin .
  2. Разверните Layout_Margin и щелкните три точки ... рядом с верхним атрибутом.
  3. Создайте новый dimen ресурс с именем layout_margin и установите его значение 16dp . Нажмите кнопку «ОК» .

Шаг 3: Добавьте шрифт

Чтобы улучшить отображение текста name , используйте шрифт Android Roboto. Этот шрифт входит в библиотеку поддержки и добавляется как ресурс.

  1. На панели «Атрибуты» найдите «fontFamily».
  2. В поле fontFamily щелкните стрелку раскрывающегося списка , прокрутите список до конца и выберите Дополнительные шрифты .
  3. В диалоговом окне «Ресурсы» найдите rob и выберите Roboto . В списке «Предварительный просмотр» выберите Regular .
  4. Установите переключатель в положение Добавить шрифт в проект .
  5. Нажмите ОК .

В папке res теперь есть папка font , содержащая файл шрифта roboto.ttf . Атрибут @font/roboto добавлен в ваш TextView .

Шаг 4: Извлеките стиль

Стиль — это набор атрибутов, определяющих внешний вид и формат представления. Стиль может включать цвет и размер шрифта, цвет фона, отступы, поля и другие общие атрибуты.

Вы можете извлечь форматирование текстового представления name в стиль и использовать его повторно для любого количества представлений в вашем приложении. Повторное использование стиля обеспечивает единообразный внешний вид вашего приложения при наличии нескольких представлений. Использование стилей также позволяет хранить эти общие атрибуты в одном месте.

  1. Щелкните правой кнопкой мыши TextView в дереве компонентов и выберите Рефакторинг > Извлечь стиль .
  2. В диалоговом окне «Извлечь стиль Android» снимите флажки layout_width , « layout_height » и « textAlignment ». Эти атрибуты обычно различны для каждого представления, поэтому не следует добавлять их в стиль.
  3. В поле Имя стиля введите NameStyle .
  4. Нажмите ОК .


  5. Стиль также является ресурсом, поэтому он сохраняется в папке res/values/ в файле styles.xml . Откройте styles.xml и изучите сгенерированный код для стиля NameStyle , который будет выглядеть примерно так:
<style name="NameStyle">
   <item name="android:layout_marginTop">@dimen/layout_margin</item>
   <item name="android:fontFamily">@font/roboto</item>
   <item name="android:paddingTop">@dimen/small_padding</item>
   <item name="android:textColor">@android:color/black</item>
   <item name="android:textSize">@dimen/text_size</item>
</style>
  1. Откройте activity_main.xml и перейдите на вкладку «Текст» . Обратите внимание, что сгенерированный стиль используется в текстовом представлении как style="@style/NameStyle" .
  2. Запустите приложение и обратите внимание на изменения шрифта и отступов вокруг TextView .

Большинство реальных приложений Android состоят из комбинации представлений для отображения изображений, текста и ввода данных от пользователя в виде текста или событий нажатия. В этой задаче вы добавляете представление для отображения изображения.

ImageView — это представление для отображения графических ресурсов. Например, ImageView может отображать Bitmap ресурсы, такие как файлы PNG, JPG, GIF или WebP, или ресурсы Drawable , например, векторные рисунки.

В Android есть ресурсы изображений, такие как образцы значков, аватары и фоны. Вы добавите один из этих ресурсов в своё приложение.

  1. Откройте файл макета на вкладке «Дизайн» , затем перетащите ImageView из области «Палитра» под элемент name_text в дереве компонентов. Откроется диалоговое окно «Ресурсы» .
  2. Выберите вариант Drawable , если он еще не выбран.
  3. Разверните Android , прокрутите и выберите btn_star_big_on . Это жёлтая звезда. .
  4. Нажмите ОК .



    Изображение звезды добавляется в макет под вашим именем. Поскольку у вас вертикальный LinearLayout , добавляемые вами представления выравниваются по вертикали.

  5. Перейдите на вкладку «Текст» и посмотрите на сгенерированный код ImageView . Ширина установлена на match_parent , поэтому ширина представления будет равна ширине родительского элемента. Высота установлена на wrap_content , поэтому высота представления будет равна высоте его содержимого. ImageView ссылается на отрисовываемый btn_star_big_on .
<ImageView
   android:id="@+id/imageView"
   android:layout_width="match_parent"
   android:layout_height="wrap_content"
   app:srcCompat="@android:drawable/btn_star_big_on" />
  1. Чтобы переименовать id ImageView , щелкните правой кнопкой мыши "@+id/imageView" и выберите Рефакторинг > Переименовать .
  2. В диалоговом окне «Переименовать» установите id @+id/star_image . Нажмите кнопку «Рефакторинг» .


  1. На вкладке «Проект» в дереве компонентов щелкните значок предупреждения. рядом с star_image . Предупреждение выдано из-за отсутствия contentDescription , который программы чтения с экрана используют для описания изображений пользователю.
  2. На панели «Атрибуты» нажмите на три точки (...) рядом с атрибутом contentDescription . Откроется диалоговое окно «Ресурсы» .
  3. В диалоговом окне «Ресурсы» выберите «Добавить новый ресурс» > «Новое строковое значение» . В поле «Имя ресурса» установите значение yellow_star , а в поле «Значение ресурса» — значение Yellow star . Нажмите кнопку «ОК» .
  4. Используйте панель «Атрибуты» , чтобы добавить верхнее поле размером 16dp (которое равно @dimen/layout_margin ) к элементу yellow_star , чтобы отделить изображение звезды от имени.
  5. Запустите приложение. Ваше имя и изображение звезды отобразятся в интерфейсе приложения.

ScrollView — это группа представлений, позволяющая прокручивать иерархию представлений, помещённую в неё. Прокручиваемое представление может содержать только одно другое представление или группу представлений в качестве дочернего. Дочернее представление обычно представляет собой LinearLayout . Внутри LinearLayout можно добавлять другие представления.

На следующем рисунке показан пример ScrollView , содержащего LinearLayout , который содержит несколько других представлений.

This scroll view contains a linear layout that contains several other views.

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

This ScrollView contains a single TextView

Шаг 1: Добавьте ScrollView, содержащий TextView.

  1. Откройте файл activity_main.xml на вкладке «Дизайн» .
  2. Перетащите прокручиваемый вид в макет, перетащив его в редактор дизайна или в дерево компонентов . Разместите прокручиваемый вид под изображением звезды.
  3. Перейдите на вкладку «Текст» , чтобы просмотреть сгенерированный код.
// Auto generated code
<ScrollView
   android:layout_width="match_parent"
   android:layout_height="match_parent">

   <LinearLayout
       android:layout_width="match_parent"
       android:layout_height="wrap_content"
       android:orientation="vertical" />
</ScrollView>

Высота и ширина ScrollView соответствуют родительскому элементу. Как только текстовое поле name_text и изображение star_image занимают достаточно места по вертикали для отображения своего содержимого, система Android размещает ScrollView , заполняя оставшееся доступное пространство на экране.

  1. Добавьте id к ScrollView и назовите его bio_scroll . Добавление id к ScrollView даёт системе Android дескриптор представления, чтобы при повороте устройства пользователем система сохраняла положение прокрутки.
  2. Внутри ScrollView удалите код LinearLayout , поскольку в вашем приложении будет только одно прокручиваемое представление — TextView .
  3. Перетащите TextView из палитры в дерево компонентов . Поместите TextView под bio_scroll как дочерний элемент bio_scroll .

  4. Установите идентификатор нового текстового представления на bio_text .
  5. Затем добавьте стиль для нового текстового представления. На панели «Атрибуты» нажмите на три точки (...) рядом с атрибутом стиля , чтобы открыть диалоговое окно « Ресурсы» .
  6. В диалоговом окне «Ресурсы» найдите NameStyle . Выберите NameStyle из списка и нажмите кнопку «ОК» . В текстовом представлении теперь используется стиль NameStyle , созданный вами в предыдущей задаче.

Шаг 2: Добавьте свою биографию в новый TextView

  1. Откройте strings.xml , создайте строковый ресурс с именем bio и введите длинный текст о себе или о чем угодно.

Вот пример биографии:

<string name="bio">Hi, my name is Aleks.
\n\nI love fish.
\n\nThe kind that is alive and swims around in an aquarium or river, or a lake, and definitely the ocean.
\nFun fact is that I have several aquariums and also a river.
\n\nI like eating fish, too. Raw fish. Grilled fish. Smoked fish. Poached fish - not so much.
\nAnd sometimes I even go fishing.
\nAnd even less sometimes, I actually catch something.
\n\nOnce, when I was camping in Canada, and very hungry, I even caught a large salmon with my hands.
\n\nI\'ll be happy to teach you how to make your own aquarium.
\nYou should ask someone else about fishing, though.\n\n</string>
  1. В текстовом представлении bio_text задайте значение атрибута text для ресурса строки bio , содержащего вашу биографию.
  2. Чтобы текст bio_text было легче читать, добавьте междустрочный интервал. Используйте атрибут lineSpacingMultiplier и задайте ему значение 1.2 .



    Обратите внимание, что в редакторе дизайна текст bio доходит до самых боковых краев экрана. Чтобы решить эту проблему, можно добавить атрибуты padding left, start, right и end к корневому LinearLayout . Добавлять нижний отступ не нужно, поскольку текст, доходящий до самого низа, сигнализирует пользователю о том, что его можно прокручивать.
  3. Добавьте начальный и конечный отступ 16dp к корневому LinearLayout .
  4. Перейдите на вкладку Текст , извлеките ресурс размера и назовите его layout_padding .

  1. Запустите приложение и прокрутите текст.

Поздравляю!

Вы создали полноценное приложение с нуля, и оно выглядит великолепно!

Проект Android Studio: AboutMe

Внутри ScrollView добавьте ImageView над TextView . При запуске приложения это изображение, в отличие от звёздочки, прокручивается по мере прокрутки текста вверх.

Подсказка: у прокручиваемого представления может быть только одно дочернее представление. Вам необходимо обернуть два прокручиваемых представления, ImageView и TextView , в LinearLayout .

  • ViewGroup — это представление, которое может содержать другие представления. LinearLayout и ScrollView — это группы представлений.
  • LinearLayout — это группа представлений, которая располагает свои дочерние представления горизонтально или вертикально.
  • Используйте ScrollView , когда вам нужно отобразить контент на экране, например, длинный текст или коллекцию изображений. Прокручиваемое представление может содержать только одно дочернее представление. Если вы хотите прокручивать несколько представлений, добавьте ViewGroup , например LinearLayout , к ScrollView и поместите прокручиваемые представления внутрь этой ViewGroup .
  • Редактор макетов — это визуальный редактор дизайна в Android Studio. Вы можете использовать его для создания макета приложения, перетаскивая элементы пользовательского интерфейса в макет.
  • Стиль — это набор атрибутов, определяющих внешний вид представления. Например, стиль может определять цвет и размер шрифта, цвет фона, отступы и поля.
  • Вы можете извлечь и объединить всё форматирование представления в стиль. Чтобы придать приложению единообразный вид, используйте этот стиль повторно для других представлений.

Курс Udacity:

Документация для разработчиков Android:

В этом разделе перечислены возможные домашние задания для студентов, работающих над этой лабораторной работой в рамках курса, проводимого преподавателем. Преподаватель должен выполнить следующие действия:

  • При необходимости задавайте домашнее задание.
  • Объясните учащимся, как следует сдавать домашние задания.
  • Оцените домашние задания.

Преподаватели могут использовать эти предложения так часто или редко, как пожелают, и могут свободно задавать любые другие домашние задания, которые они сочтут подходящими.

Если вы работаете с этой лабораторной работой самостоятельно, можете использовать эти домашние задания для проверки своих знаний.

Ответьте на эти вопросы

Вопрос 1

Какая из перечисленных ниже является группой представлений?

EditText

LinearLayout

TextView

Button

Вопрос 2

Какая из перечисленных иерархий представлений недействительна?

LinearLayout > TextView , TextView , ImageView

ScrollView > LinearLayout > TextView , Button , Button , ScrollView > TextView

TextView > TextView , ImageView , ScrollView

Вопрос 3

Стили — это ресурсы, определяемые в styles.xml . С помощью стилей можно определять цвета, шрифты, размер текста и многие другие характеристики представления. Верно или неверно?

▢ Верно

▢ Ложь

Вопрос 4

ScrollView — это группа представлений, которая может содержать любое количество представлений или групп представлений в качестве дочерних элементов. Верно или неверно?

▢ Верно

▢ Ложь

Вопрос 5

Какой элемент пользовательского интерфейса можно использовать для отображения изображений в вашем приложении?

TextView

ImageView

Button

ScrollView

Начните следующий урок: 2.2: Добавьте интерактивность для пользователя

Ссылки на другие практические занятия по этому курсу см. на целевой странице практических занятий по основам Android Kotlin .