#android #android-studio #kotlin #kotlin-coroutines #runnable
Вопрос:
Я пытаюсь прокрутить ScrollView
до нижней части представления внутри ScrollView
. Я нашел такое рабочее решение в StackOverflow.
scrollView.post {
scrollView.smoothScrollTo(0, myAwesomeTextView.bottom)
}
Я хочу избежать запуска и вместо этого использовать сопрограмму. Мне интересно, как мы можем заменить этот код сопрограммой?
Я попробовал пойти по этому пути, но ничего не вышло.
CoroutineScope(Dispatchers.Main).launch {
scrollView.smoothScrollTo(0, myAwesomeTextView.bottom)
}
Любая помощь будет высоко оценена.
Комментарии:
1. Есть ли какая-то конкретная причина для того, чтобы избегать запуска?
2. Однако мне любопытно, почему ваша сопрограмма не сработала. Это выглядит нормально, хотя было бы более типично для использования
lifecycleScope
.
Ответ №1:
С точки зрения производительности и качества кода, в данном конкретном случае нет никаких преимуществ в использовании сопрограмм вместо View.post
. scrollView.post
очень хорошо подходит для случая использования, так как он будет помещать операцию в очередь scrollView
сообщений, поэтому операция будет выполнена, как только представление будет прикреплено к окну. это означает, что вам не нужно обрабатывать граничные случаи, когда представление, возможно, не было инициализировано и т. Д.
Использование сопрограмм здесь усложнит ситуацию и не добавит никаких преимуществ в производительности.
Комментарии:
1. Спасибо за разъяснение. Почет