#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 к поиску представления строки, прокручиваемого к нему программно?