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

#android #view #scroll #scrollview #android-linearlayout

Вопрос:

Я добавляю дочерний элемент в linearlayout внутри scrollview linearlayout .addview(дочерний элемент); внутри цикла for, затем я хочу перейти к любому дочернему элементу I по коду, позиции или номеру

Комментарии:

1. Пожалуйста, предоставьте достаточно кода, чтобы другие могли лучше понять или воспроизвести проблему.

Ответ №1:

Вы можете использовать scrollView.smoothScrollTo . Допустим , вы используете TextView в качестве ребенка linearLayout , тогда вы можете сделать это:

 val listItem = listOf<Item>()
val selectedIndex = 5
var selectedView: TextView? = null

listItem.forEachIndexed { index, item ->
    /*
        inflate your child layout here
    */
    val view = LayoutInflater.from(context).inflate(R.layout.row, parentLinearLayout, false)
    val textView = view.findViewById<TextView>(R.id.title_text)

    if(index == selectedIndex){
        selectedView = textView
    } 
    parentLinearLayout.addView(textView)
}

scrollView.post {
    scrollView.smoothScrollTo(0, selectedView.top)
}