действительно необходимо для отображения пользователь
-
ского интерфейса, поэтому добавим еще несколько строк, определяющих от
-
ступы вокруг элементов и их привязку к определенным точкам экрана, чтобы
изображение на экране получилось чуть более привлекательным:
Помимо отступов, настроек шрифтов и привязки к определенным областям
экрана мы также добавили атрибут
adjustViewBounds
в элемент
ImageView
с ло
-
готипом. На данный момент мы не выполняем никаких существенных мани
-
пуляций с представлением, однако, как мне кажется, нам стоит остановиться
и подробнее рассмотреть этот атрибут, потому что он часто используется на
практике, но из-за нестандартного поведения может вызывать непонимание
даже у опытных разработчиков.
Вот как он определяется в документации для разработчиков (
https://oreil.ly/
qKi6P
):
Установите значение
true
в этом атрибуте, если требуется, чтобы
ImageView
корректировал свои границы с сохранением соотношения сторон своего
изображения.
Проще говоря, если не присвоить этому атрибуту значение
true
,
ImageView
мо
-
жет рассматривать пробельные части своей области рисования как поля и от
-
ступы, которые не были указаны. Если вы сомневаетесь, добавьте этот атрибут
со значением
true
во все
ImageView
, для которых не предусматривается особого
поведения. Это может показаться избыточным, но если вам нужно, чтобы гра
-
ницы изображений идеально совпадали с границами экрана или других эле
-
ментов, этот атрибут поможет вам добиться желаемого. А теперь продолжим!
Запустите приложение. Теперь оно должно выглядеть, как показано на
рис. 17.1.
Сейчас, когда наш пользовательский интерфейс имеет более или менее при
-
влекательный внешний вид, добавим поведение в экземпляры
CheckBox
и
Button
.
Нам нужно, чтобы после нажатия кнопки в нижней части экрана открывал
-
ся пользовательский интерфейс, позволяющий просматривать книги; кнопка
должна оставаться неактивной, пока пользователь не установит флажок, со
-
общающий о согласии с нашими условиями (в них мы просто напоминаем, что
авторские права на книги распространяются и на цифровые копии). Давайте
посмотрим, как реализовать реакцию на флажок в коде.
Откройте файл
MainAc ti vi ty.java , в котором находится код, управляющий
начальным экраном (экраном с приветствием). Обратите внимание на стро
-
ку
setContentView(R.layout.main)
, которая анализирует описание представления
в файле XML из предыдущей главы и рисует его на экране. На данный момент
содержимое файла выглядит примерно так:
Java public class MainAc ti vi ty extends Ac ti vi ty {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
}
Оформление представлений
261 Kotlin class MainAc ti vi ty : Ac ti vi ty() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
}
}