Как заставить макет координатора применять поведение после функции прокрутки?Android

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Как заставить макет координатора применять поведение после функции прокрутки?

Сообщение Anonymous »

Существует координаторLayout, который содержит AppBarLayout и NestedScrollView, который имеет TextView. TextView содержит текст Markdown. Я хочу прокрутить до привязки (#header). Приведенный ниже код работает должным образом, но после вызова NestedScrollView.scrollTo координаторLayout не вызывает скрытие AppBarLayout при прокрутке.
Что нужно сделать, чтобы координаторLayout получил событие прокрутки, инициируемое кодом? Я пробовал использовать SmoothScrollTo, ScrollBy, не работает. Когда пользователь прокручивает страницу вручную, AppBarLayout скрывается, как и ожидалось.
fun scrollToAnchor(view: View, anchor: String) {
val textView = view as TextView
textView.setTextIsSelectable(false)
val spanned = textView.text as Spanned
val spans = spanned.getSpans(0, spanned.length, AnchorSpan::class.java)
if (spans != null) {
for (span in spans) {
if (anchor == span.anchor) {
val start = spanned.getSpanStart(span)
val line = textView.layout.getLineForOffset(start)
val top = textView.layout.getLineTop(line)

val scrollToFunc = (view.parent as? NestedScrollView)?.let { it::scrollTo } ?: view::scrollTo
scrollToFunc.invoke(0, top)
break
}
}
}
textView.setTextIsSelectable(true)
}



















Подробнее здесь: https://stackoverflow.com/questions/790 ... o-function
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»