Size: a a a

StartAndroid Ru Chat

2020 October 15

СП

Сергей П. in StartAndroid Ru Chat
Кстати иногда это разные вещи
источник

A

Alexander in StartAndroid Ru Chat
Сергей П.
А проверка на нулл в Котлине зачем через if? Спецально что бы не как у джавы let? придумали же
меня заинтересовало, если в else блоке будет не одна строчка кода, как вы напишите это через let? ?
источник

AM

Alexandr M in StartAndroid Ru Chat
Ребятушки, как вы обычно меняете цвет векторных иконок? Не удалось нагуглить рабочее решение. setColorFilter работает некорректно
источник

N2

N 2 in StartAndroid Ru Chat
Alexander
меня заинтересовало, если в else блоке будет не одна строчка кода, как вы напишите это через let? ?
a?.let{} :? run {--} кринж, поэтому в таких ситуациях лучше if else
источник

A

Alexander in StartAndroid Ru Chat
N 2
a?.let{} :? run {--} кринж, поэтому в таких ситуациях лучше if else
вот и я про то же
источник

СП

Сергей П. in StartAndroid Ru Chat
Но тут одна, хотя да.
источник

AG

Alexander Gapanovich in StartAndroid Ru Chat
Коллеги,  плыз!!!
Есть у кого такой валидатор:
источник

AG

Alexander Gapanovich in StartAndroid Ru Chat
источник

AG

Alexander Gapanovich in StartAndroid Ru Chat
источник

MB

Maxim B. in StartAndroid Ru Chat
источник

I

Igor F in StartAndroid Ru Chat
Всем привет, никто не подскажет? В своих уроках по корутинам Дмитрий Виноградов говорит, что всегда нужно не забывать вызвать в suspend функции continuation.resume(result), иначе корутина не пойдет дальше работать,  но в документации:

https://kotlinlang.org/docs/reference/coroutines/composing-suspending-functions.html#sequential-by-default

В самом первом примере они возвращают результат из suspend функций без continuation.resume(result) и все работает. Не могли бы вы разъяснить этот момент. Заранее спасибо.
источник

AA

Albert Abdullin in StartAndroid Ru Chat
Здравствуйте. Ребята, метод toolbar проверяет является ли объект экземпляром интерфейса CollapsibleActionView пакета androidx.appcompat.view, при этом в файле этого интерфейса написано, что интерфейс deprecated. Как такое может быть? Toolbar в проекте из пакета androidx.appcompat.widget. При этом AS не говорит, что он устаревший
источник

N2

N 2 in StartAndroid Ru Chat
Igor F
Всем привет, никто не подскажет? В своих уроках по корутинам Дмитрий Виноградов говорит, что всегда нужно не забывать вызвать в suspend функции continuation.resume(result), иначе корутина не пойдет дальше работать,  но в документации:

https://kotlinlang.org/docs/reference/coroutines/composing-suspending-functions.html#sequential-by-default

В самом первом примере они возвращают результат из suspend функций без continuation.resume(result) и все работает. Не могли бы вы разъяснить этот момент. Заранее спасибо.
Этот continuation есть в контексте suspend coroutine, suspend функция это немного другое
источник

A

Alexander in StartAndroid Ru Chat
Igor F
Всем привет, никто не подскажет? В своих уроках по корутинам Дмитрий Виноградов говорит, что всегда нужно не забывать вызвать в suspend функции continuation.resume(result), иначе корутина не пойдет дальше работать,  но в документации:

https://kotlinlang.org/docs/reference/coroutines/composing-suspending-functions.html#sequential-by-default

В самом первом примере они возвращают результат из suspend функций без continuation.resume(result) и все работает. Не могли бы вы разъяснить этот момент. Заранее спасибо.
это зависит от того, что внутри суспенд функции происходит. возвращать результат явно через continuation.resume(result)  надо:
1) если вы делаете асинхронный запрос внутри суспенд функции
2) и она должна вернуть какой-либо результат (который описан в заголовке функции)
То что написано на startAndroid - это пример того как корутины обернуть вокруг существующих асинхронных запросов в приложении.
В примере на сайте, networkService.download - это асинхронная таска. У нее есть колбек, который сработает, когда появится результат file.
suspend fun download(url: String): File {
   return suspendCoroutine { continuation ->
       networkService.download(url, object: NetworkService.Callback {
           override fun onSuccess(result: File) {
               continuation.resume(result)
           }
       })
   }
}
Если бы networkService.download метод сам был бы по себе suspend функцией, то можно было бы написать вот так
suspend fun download(url: String): File {
 val file = networkService.download(Uri)
 return file
}
И тогда бы вы получили то же самое, что и в примере на сайте котлина.
источник

SP

Sergey Panov in StartAndroid Ru Chat
Igor F
Всем привет, никто не подскажет? В своих уроках по корутинам Дмитрий Виноградов говорит, что всегда нужно не забывать вызвать в suspend функции continuation.resume(result), иначе корутина не пойдет дальше работать,  но в документации:

https://kotlinlang.org/docs/reference/coroutines/composing-suspending-functions.html#sequential-by-default

В самом первом примере они возвращают результат из suspend функций без continuation.resume(result) и все работает. Не могли бы вы разъяснить этот момент. Заранее спасибо.
Если Вы про это https://startandroid.ru/ru/courses/kotlin/29-course/kotlin/596-urok-3-korutiny-suspend-function.html и вот это

То в документации обычная suspend функция и там continuation "замаскирован" под словом suspend.
В уроке Дмитрия Виноградова мы сами преобразуем колбэк в suspend функцию, для этого нам нужен continuation в явном виде.
источник

I

Igor F in StartAndroid Ru Chat
Alexander
это зависит от того, что внутри суспенд функции происходит. возвращать результат явно через continuation.resume(result)  надо:
1) если вы делаете асинхронный запрос внутри суспенд функции
2) и она должна вернуть какой-либо результат (который описан в заголовке функции)
То что написано на startAndroid - это пример того как корутины обернуть вокруг существующих асинхронных запросов в приложении.
В примере на сайте, networkService.download - это асинхронная таска. У нее есть колбек, который сработает, когда появится результат file.
suspend fun download(url: String): File {
   return suspendCoroutine { continuation ->
       networkService.download(url, object: NetworkService.Callback {
           override fun onSuccess(result: File) {
               continuation.resume(result)
           }
       })
   }
}
Если бы networkService.download метод сам был бы по себе suspend функцией, то можно было бы написать вот так
suspend fun download(url: String): File {
 val file = networkService.download(Uri)
 return file
}
И тогда бы вы получили то же самое, что и в примере на сайте котлина.
Спасибо большое за ответ!
источник

I

Igor F in StartAndroid Ru Chat
Sergey Panov
Если Вы про это https://startandroid.ru/ru/courses/kotlin/29-course/kotlin/596-urok-3-korutiny-suspend-function.html и вот это

То в документации обычная suspend функция и там continuation "замаскирован" под словом suspend.
В уроке Дмитрия Виноградова мы сами преобразуем колбэк в suspend функцию, для этого нам нужен continuation в явном виде.
Спасибо большое за ответ!
источник

P

Pavel Pokatilo in StartAndroid Ru Chat
Как называется на русском и английском виджет, который отображает список в таком виде: фиксированный скалированный элемент в центре, остальные при прокручивании анимируются и приводятся к нормальному размеру. Разные реализации на flutter страдают одной и той же проблемой - они все заточены не под здоровый список, а под один элемент на экране, carousel и swiper не подходят, потому что скалирование происходит не по одному центральному виджету, а по всем, то есть они пирамидкой уходят в обе стороны, а мне это не нужно
источник

I

Igor F in StartAndroid Ru Chat
N 2
Этот continuation есть в контексте suspend coroutine, suspend функция это немного другое
Спасибо большое за ответ!
источник

N2

N 2 in StartAndroid Ru Chat
Pavel Pokatilo
Как называется на русском и английском виджет, который отображает список в таком виде: фиксированный скалированный элемент в центре, остальные при прокручивании анимируются и приводятся к нормальному размеру. Разные реализации на flutter страдают одной и той же проблемой - они все заточены не под здоровый список, а под один элемент на экране, carousel и swiper не подходят, потому что скалирование происходит не по одному центральному виджету, а по всем, то есть они пирамидкой уходят в обе стороны, а мне это не нужно
Сам кст искал подобное, но я свой написал, потому что даже если у андройда был бы такой виджет он был бы просто нереальным говнищем(как и все остальные вью в андройде), вообще на самом деле ресайклером можно такое сделать через 100500 костылей разумеется
источник