Прокрутите ScrollView до элемента вложенного ListView

#android #user-interface #android-listview #android-scrollview

#Android #пользовательский интерфейс #android-listview #android-scrollview

Вопрос:

Я работаю над приложением для получения. Одно действие управляет различными ингредиентами в LinearLayout:

  • Немного текста о стартере
  • Список ингредиентов для закваски
  • Немного текста о главном блюде
  • Список ингредиентов основного блюда

Пользователь может добавлять любое количество ингредиентов в разные списки. Таким образом, количество элементов списка и размер полного представления / действия не ограничены. Из-за этого complete LinearLayout вложен в a ScrollView .

Конечно, наличие вертикальной прокрутки ListView внутри вертикальной прокрутки ScrollView не является хорошей идеей. Но я использую пользовательский ListView подкласс, который переопределяет onMeasure(...) и увеличивает размер ListView , чтобы охватить все элементы. Это CustomListView не прокручивается и, следовательно, не конфликтует с ScrollView . Это работает без каких-либо проблем.

Предположим ScrollView , что прокручивается вверх, и пользователь добавляет новый ингредиент, который будет помещен в середину списка основных блюд. Этот список в настоящее время отображается на экране.

Как я могу прокрутить ScrollView , чтобы показать добавленный элемент списка ингредиентов?

Конечно, я знаю методы scrollBy(x, y) и scrollTo(x, y) методы ScrollView , которые они предоставляют. Но как мне получить необходимые значения для y (scolling в направлении x не требуется)?

Мне нужен был бы способ получить координаты представления элемента списка и перевести их в координаты внутри ScrollView . Но как мне получить представление элемента списка в первую очередь?

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

1. вы когда-нибудь думали об использовании ExpandableListView с именами групп starter и main и соответствующими блюдами в качестве их дочерних элементов?

2. Да, но «starter» и «main» — это не просто простые тексты, которые можно использовать в качестве имен групп, а некоторый «сложный» контент, такой как текст, изображения, ползунок для регулировки количества гостей и т.д.

3. просто отключите родительскую прокрутку при нажатии на listview и отключите прокрутку listview при касании scrollview.

4. @DevCarlsberg Извините, но я не понимаю, как это связано с вопросом. Какое отношение имеет touch к поиску представления строки, прокручиваемого к нему программно?