У меня есть ListView с текстом редактирования и кнопкой под ним. Когда я нажимаю на элемент listView, появляется клавиатура и нажимает текст редактирования и кнопку. Я хочу, чтобы список переместился к выбранному элементу. Есть идеи? СпасибоListView прокрутка к выбранному элементу
ответ
Настройте прослушиватель на выбранный элемент списка, затем используйте View.getTop()
или View.getBottom()
при нажатии, чтобы получить его позицию в родительском. Затем вы можете использовать ListView.scrollTo(x, y)
для перехода к элементу списка.
Это не работает для меня. Если я реализую ваш пример, listView прокручивается, но выбранный элемент не центрируется. – Anita
@Anita: Вы ничего не говорили о центрировании ... центрирование требует лишь небольшой модификации. Просто добавьте или уменьшите значение y пропорционально высоте экрана. – Doge
Не нужно это делать. –
Вы можете использовать метод List12's setSelection(int position)
для прокрутки до строки.
Это не сработало для меня. Я использовал smoothScrollToPostion (position) в http://developer.android.com/reference/android/widget/ListView.html#smoothScrollToPosition(int). Важное примечание. Мне пришлось вызвать его после того, как на адаптер был вызван notifyDataSetChanged(). – SilentNot
Обратите внимание, что это приводит вас к позиции, но, как и в другом ответе, на самом деле прокручивается smoothScrollToPosition. Оба работают, если вы хотите, чтобы пользователь был показан что-то, так что это вопрос того, как вы хотите, чтобы он выглядел. –
Как сделать listview прокруткой вверх, когда существует только один элемент? –
Вы должны использовать transcript mode
:
getListView().setTranscriptMode(ListView.TRANSCRIPT_MODE_NORMAL);
Вы можете использовать управления ListView smoothScrollToPosition(int position)
, чтобы перейти к конкретному месту в списке.
из-за этой ошибки: https://code.google.com/p/android/issues/detail?id=36062, это действительно лучшее обходное решение, если вы хотите гладкую прокрутку: http://stackoverflow.com/questions/ 14479078/smoothscrolltopositionfromtop-is-not-always-working-like-it-should/20997828 # 20997828 – nommer
Эта ошибка, как описано, кажется специфичной для smoothScrollToPositionFromTop. Не уверен, что это влияет на smoothScrollToPosition ... кто-нибудь знает? –
Не знаю, но во время моего 'smoothScrollToPosition()' не работает, пока работает 'setSelection()'; хотя с рывком. – Darpan
Yo можете посмотреть
listView.setSelectionFromTop (положение, distanceFromHeader);
Это положение элемента в позиции, указанные пиксели ниже верхней части ListView
Мне нужно прокрутить другой вид одновременно, прокручивая lisview. Использование setSelectionFromTop в listview для прокрутки блокирует поток пользовательского интерфейса, который замедляет прокрутку другого представления. Можете ли вы дать какое-то предложение, как это сделать? – VijayRaj
Для прямого свитка:
getListView().setSelection(11);
Для гладкой прокрутки:
getListView().smoothScrollToPosition(11);
Для перехода к началу
getListView().setSelectionAfterHeaderView();
Примечание
пытаются назвать его в должности, потому что когда-то ListView еще не создан, а вы называете это метод
getListView().postDelayed(new Runnable() {
@Override
public void run() {
lst.setSelection(15);
}
},100L);
Использование продолжительность дает лучший пользовательский опыт. Используйте это, с добавленной продолжительностью. Пролистнет элемент в позиции плавно в верхней части списка.
int duration = 500; //miliseconds
int offset = 0; //fromListTop
listview.smoothScrollToPositionFromTop(position,offset,duration);
- продолжительность descrease сделать прокрутку быстрее
Вы можете использовать
smoothScrollToPosition(position)
Просто увеличить позицию элемента с 1, и вы получите представление пункта.
getListView().smoothScrollToPosition(position + 1);
- 1. Прокрутка Java JList к выбранному элементу
- 2. Прокрутка TreeTable к элементу
- 3. Прокрутка к выбранному элементу в компоненте Flex 4 Spark List
- 4. кодовое имя одного списка прокрутка к выбранному элементу
- 5. Привязать кнопку к выбранному элементу
- 6. Привязать к TreeView выбранному элементу
- 7. дополнение запроса к выбранному элементу
- 8. Получить путь к выбранному элементу в ListView - API Win32
- 9. Задача ListView: она не переходит к выбранному элементу
- 10. Как привязать ярлык JavaFX к выбранному элементу из ListView
- 11. UICollectionView Прокрутка к элементу
- 12. Применить параметры к определенному выбранному элементу выбора
- 13. DropDownList возвращает себя к первому выбранному элементу
- 14. привязка TextBlock к выбранному элементу DataGrid
- 15. swing JMenu извлекает путь к выбранному элементу
- 16. Как прокрутить QListWidget к выбранному элементу
- 17. CSS добавить класс к выбранному элементу
- 18. Перейти к выбранному элементу в ListBox
- 19. tinyMCE 4: добавить класс к выбранному элементу
- 20. Angular2 - Добавление класса CSS к выбранному элементу
- 21. Windows 10 x: привязка к выбранному элементу
- 22. Привязка к выбранному элементу в ItemsControl
- 23. Доступ к выбранному элементу из Repeater
- 24. JQuery добавить к выбранному элементу по щелчку
- 25. Получение пути к выбранному элементу в PowerShell
- 26. NSCollectionView Как перейти к выбранному элементу
- 27. привязка столбца datagrid к выбранному элементу property
- 28. Прокрутка к выбранному Treeviewitem в scrollview
- 29. Прокрутка к выбранному узлу в дереве. Прайсы
- 30. эффекты, применяемые к родительскому элементу, а не выбранному элементу
увидеть мой ответ здесь, http://stackoverflow.com/a/29345217/1881527 –
Возможный дубликат [Программным прокручивать в определенную позицию в Android ListView] (HTTP: // StackOverflow.com/questions/7561353/programatically-scroll-to-a-specific-position-in-an-android-listview) –