Kotlin: Разница между app.R и com.google.android.material.R
Разработчики Android нередко сталкиваются с путаницей относительно использования различных версий класса
Класс R представляет собой специальную структуру, автоматически создаваемую Android Studio во время процесса сборки проекта. Он служит контейнером ссылок на ресурсы вашего приложения (изображения, цвета, стили, макеты и т.д.). Каждый ресурс автоматически получает уникальный числовой идентификатор, хранящийся в соответствующих полях класса
Классы R бывают двух типов:
Что это?Это...
R, особенно когда речь идет о доступе к ресурсам своего приложения и сторонних библиотек. Эта статья поможет разобраться в разнице между app.R и com.google.android.material.R, а также научит правильно обращаться к нужным ресурсам.Что такое классы R?
Класс R представляет собой специальную структуру, автоматически создаваемую Android Studio во время процесса сборки проекта. Он служит контейнером ссылок на ресурсы вашего приложения (изображения, цвета, стили, макеты и т.д.). Каждый ресурс автоматически получает уникальный числовой идентификатор, хранящийся в соответствующих полях класса
R.Классы R бывают двух типов:
- Ваш собственный класс
R, называемыйapp.R, соответствует ресурсам вашего проекта. - Класс R сторонней библиотеки, обозначаемый именем пакета библиотеки (например,
com.google.android.material.R), содержит ссылки на ресурсы конкретной внешней библиотеки.
app.R
Что это?Это...
- Жалоба
Kotlin: Класс Toast(): Кратковременное сообщение
В Kotlin для вывода кратковременных уведомлений (на 2–5 секунд) используется класс
Параметры:
Простой пример:
Расширенный пример (С настройкой позиции):
Toast из Android SDK.Основная функция‑конструктор
ВыделитьKotlin
Toast.makeText(context, text, duration).show()Параметры:
context— контекст приложения (например,thisвActivity,requireContext()во фрагменте).text— текст сообщения (строка или ресурсR.string.xxx).duration— длительность показа:Toast.LENGTH_SHORT— ~2 секунды;Toast.LENGTH_LONG— ~3,5 секунды.
Простой пример:
ВыделитьKotlin
Toast.makeText(this, "Операция выполнена!", Toast.LENGTH_SHORT).show()Расширенный пример (С настройкой позиции):
ВыделитьKotlin
val toast = Toast.makeText(this, "Сообщение с настройкой", Toast.LENGTH_LONG)
toast.setGravity(Gravity.TOP or Gravity.CENTER_HORIZONTAL, 0, 50)
toast.show()setGravity(gravity, xOffset, yOffset) задаёт:
- позицию на экране (
Gravity.TOP,Gravity.CENTER,Gravity.BOTTOMи т. п.); - смещение по осям X и Y (в пикселях).
Важные нюансы
- Вызов
.show()обязателен — без негоToastне отобразится. - Контекст
Реклама




