LibCode
Kotlin: Стандартные индикаторы загрузки
В Jetpack Compose есть несколько стандартных индикаторов загрузки:
Примеры их использования:
Дополнительные возможности настройки:
CircularProgressIndicator: Классический круговой индикатор.LinearProgressIndicator: Линейный индикатор.ActivityIndicator: Простой вращающийся индикатор.
Примеры их использования:
ВыделитьKotlin
// Круговой индикатор
CircularProgressIndicator(
modifier = Modifier
.size(40.dp)
.padding(16.dp),
color = MaterialTheme.colorScheme.primary
)
// Линейный индикатор
LinearProgressIndicator(
progress = 0.5f, // значение от 0 до 1
modifier = Modifier
.height(4.dp)
.fillMaxWidth()
.padding(16.dp)
)
// Простой индикатор активности
ActivityIndicator(
modifier = Modifier
.size(40.dp)
.padding(16.dp),
color = MaterialTheme.colorScheme.primary
)Дополнительные возможности настройки:
- Изменение размера через модификатор
size(). - Настройка цвета через параметр
color. - Анимация прогресса для
LinearProgressIndicator. - Стилизация через темы Material
- Жалоба
Kotlin: Как получить часовой пояс устройства
В Kotlin можно получить часовой пояс пользователя несколькими способами.
Получение названия часового пояса
Получение смещения от UTC
...
Через TimeZone
ВыделитьKotlin
val timeZone = TimeZone.getDefault()
val timeZoneId = timeZone.id // например: "Europe/Moscow"
val offset = timeZone.rawOffset / (1000 * 60 * 60) // смещение в часахЧерез ZoneId (Рекомендуемый способ)
ВыделитьKotlin
import java.time.ZoneId
val zoneId = ZoneId.systemDefault()
val zoneIdString = zoneId.toString() // например: "Europe/Moscow"Через Calendar
ВыделитьKotlin
import java.util.Calendar
val calendar = Calendar.getInstance()
val timeZone = calendar.timeZone
val offset = timeZone.getRawOffset()Через LocalDateTime
import java.time.LocalDateTime
import java.time.ZoneId
val currentTime = LocalDateTime.now(ZoneId.systemDefault())Примеры использования
Получение названия часового пояса
ВыделитьKotlin
fun getUserTimeZone(): String {
return ZoneId.systemDefault().toString()
}Получение смещения от UTC
ВыделитьKotlin
fun getTimeZoneOffset(): Int {
val zone =Kotlin: Функция println()
Функция println() является стандартной конструкцией в языке Kotlin, позволяющей выводить значения и выражения в консольный поток вывода. Ее название расшифровывается как «
В этой статье мы детально рассмотрим особенности использования функции
Основная форма записи функции
Параметр
Пример:
Результатом выполнения будет вывод в консоли следующей строки:
print line» («напечатать строку»), подразумевая, что после каждого вызова происходит автоматический перенос каретки на новую строку.В этой статье мы детально рассмотрим особенности использования функции
println(), ее синтаксис, варианты применения и лучшие практики.Синтаксис и базовые примеры
Основная форма записи функции
println() следующая:
ВыделитьKotlin
println([value])Параметр
[value] необязателен и может содержать любое выражение или литеральное значение. Если аргумент отсутствует, то просто выводится новая строка.Пример:
ВыделитьKotlin
println("Hello, World!")Результатом выполнения будет вывод в консоли следующей строки:
Hello, World!
Особенности функции println()
- Автоматический перенос строки: После каждого вызова
println()происходит переход на новую строку. - Возможность вывода любых выражений: Можно
Kotlin: Как уменьшить расстояние между строками в тексте
В Jetpack Compose есть несколько способов уменьшить расстояние между строками в тексте:
Через параметр lineSpacing в TextStyle:
Через lineHeight в TextStyle:
Для Column (если речь про расстояние между элементами):
Для LazyColumn или LazyRow:
Для нескольких Text в Column:
...
Через параметр lineSpacing в TextStyle:
ВыделитьKotlin
Text(
text = "Ваш текст",
style = TextStyle(
lineSpacing = 1.2f // значение меньше 1 уменьшит расстояние
)
)Через lineHeight в TextStyle:
ВыделитьKotlin
Text(
text = "Ваш текст",
style = TextStyle(
lineHeight = 20.sp // задайте конкретное значение в sp
)
)Для Column (если речь про расстояние между элементами):
ВыделитьKotlin
Column(
verticalArrangement = Arrangement.spacedBy(8.dp) // задайте нужное расстояние
) {
Text("Строка 1")
Text("Строка 2")
}Для LazyColumn или LazyRow:
ВыделитьKotlin
LazyColumn(
verticalArrangement = Arrangement.spacedBy(8.dp)
) {
items(itemsList) { item ->
Text(item.text)
}
}Для нескольких Text в Column:
ВыделитьKotlin
Column {
Text("Первая строка")
Spacer(modifier = Modifier.height(4.dp)) // задайте нужное значение
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
Что это?Это...
