ScrollView и HorizontalScrollView
При большом количестве информации, которую нужно поместить на экране приходится использовать полосы прокрутки. В Android существуют специальные компоненты ScrollView и HorizontalScrollView, которые являются контейнерными элементами и наследуются от ViewGroup. Обратите внимание, что класс TextView использует свою собственную прокрутку и не нуждается в добавлении отдельных полос прокрутки. Но использование отдельных полос даже с TextView может улучшить вид вашего приложения и повышает удобство работы для пользователя.
На панели инструментов компоненты можно найти в разделе Containers.
В контейнеры ScrollView и HorizontalScrollView можно размещать только один дочерний элемент (обычно LinearLayout), который в свою очередь может быть контейнером для других элементов. Виджет ScrollView, несмотря на свое название, поддерживает только вертикальную прокрутку, поэтому для создания вертикальной и горизонтальной прокрутки необходимо использовать ScrollView в сочетании с HorizontalScrollView. Обычно ScrollView используют в качестве корневого элемента, а HorizontalScrollView в качестве дочернего. Можно и наоборот, пробуйте.
В в теле метода onCreate() создайте ссылку на элемент TextView, объявленный в XML-разметке, и запишите в него через метод setText() какой-нибуль длинный текст, который не поместится в видимые размеры экрана устройства:
Запустив проект, вы должны увидеть вертикальную и горизонтальную полосы прокрутки при попытке скролирования.
Если полосы прокрутки вас раздражают, то используйте атрибут android:scrollbars=»none», который скроет их.
По такому же принципу можете вложить ImageView, чтобы просматривать большие картинки:
Методы scrollBy() и scrollTo()
Вы можете программно прокручивать контент с помощью методов scrollBy() и scrollTo(). Например, можно организовать автоматическую прокрутку во время чтения. В нашем примере мы будем прокручивать контент с помощью трёх кнопок.
Сам код для методов:
Дополнительное чтение
Библиотека ParallaxScrollView с использованием эффекта параллакса. Вы прокручиваете длинный текст, а задний фон прокручивается чуть медленнее. Возможно, кому-то пригодится. Там же можно скачать готовое демо и просмотреть в действии.
Источник
Удалить дорожку прокрутки из ScrollView в Android
У моего Android-приложения есть основной WebView (HTML, загруженный из локального ресурса), который я хочу использовать всю ширину экрана и иметь возможность прокручивать (вертикально). Поэтому я обернул WebView в ScrollView в моем XML-макете, но независимо от того, что я делаю, я не могу удалить строку прокрутки с правой стороны прокрутки. Хуже того, я не могу изменить цвет фона полосы прокрутки.
Трек занимает около 10 дп или около того, что создает проблемы для HTML в WebView. Я бы хотел, чтобы полоса прокрутки появлялась поверх веб-представления (стиль iPhone, если вы знаете, что я имею в виду). Теперь вы можете сказать: «Почему бы вам не изменить свой HTML на 10px тоньше?», Что является моим резервным решением, но мне бы этого не хотелось.
Вот соответствующий фрагмент макета XML, вы увидите, что я пробовал каждый атрибут android: etc, который мог найти:
Я нацелен на платформу 2.1 / API lvl 7, на самом деле просто имею дело с дисплеями нормального размера, mdp, hdp и xhdp.
Я немного смущен, почему вы WebView в ScrollView в первую очередь. WebView имеет собственную встроенную систему прокрутки.
Что касается вашего фактического вопроса, если вы хотите, чтобы Scrollbar отображалась вверху, вы можете использовать
Чтобы удалить панель прокрутки из представления (и его подкласса) через xml:
Попробуйте это ваша деятельность onCreate:
Решила мою проблему с добавлением этого в мой Listview
Эти решения не выполнялись в моем случае с Relative Layout и If KeyBoard Open android:scrollbars=»none» & android:scrollbarStyle=»insideOverlay» также не работает.
Панель инструментов исчезла, моя кнопка была удалена.
Источник
Как отключить Отображение полосы прокрутки в ListView
Здравствуйте, как отключить отображение полосы прокрутки в ListView?
Добавлено через 45 минут
android:scrollbars=»none»
Как изменить внешний вид полосы прокрутки в ScrollView
Подскажите пожалуйста, как изменить внешний вид полосы прокрутки в ScrollView? Просто я уже все.
Полосы прокрутки
Можно ли как нибудь убрать полосы прокрутки scrollview
Кастомизация индикатора прокрутки в ListView Android Studio
Здравствуйте, вообщем прописал нужные свойства для своего отображения прокрутки в списке, в.
SimpleCursorAdapter(ListView заполняется данными только после прокрутки скрола)
Помогите решить задачу. У меня ListView начинает заполняться данными, только после первой прокрутки.
Как отключить автоматическое возвращение полосы прокрутки в ListBox?
Допустим есть длинный список (ListBox), и в процессе работы приложения изменяются его элементы.
Как отключить полосу прокрутки в ListView
Здравствуйте многоуважаемые! Я новичок в программирование графического интерфейса в C++ Builder.
Отключить полосы прокрутки в браузере
Как отключить полосы прокрутки в Главном окне браузера?
div с полосой прокрутки, стиль полосы прокрутки
Добрый день! Подскажите как правильно создать блочный элемент, вероятней всего div встроенный в.
Источник
Убрать скролл в ListView
Одновременный скролл нескольких ListView
Здравствуйте! Меня интересует вопрос по Android Studio, можно ли как-нибудь организовать.
Как убрать прокрутку ListView
Здравствуйте! Как можно сделать так, чтобы скроллился не ListView, а Layout, в котором этот.
Убрать выделение строк в Listview
Всем привет! Подскажите кто знает как можно убрать выделение строк в listview?
Убрать все виды выделений с item в ListView
Использую android:cacheColorHint=»@android:color/transparent», но не помогает. Как можно убрать все.
Про разделители не понял, но думаю, это не то. Представьте, что у меня не ListView, а просто вертикальный LinearLayout. Вот примерно такой результат мне и нужен — просто список без прокрутки. Подумываю уже действительно обойтись без ListView и сделать список на Layout’е
Добавлено через 7 минут
На словах думаю будет долго объяснять, так что выложу весь проект https://yadi.sk/d/OzBLMnPMuNgt2
Когда запустите, перейдите на вкладку «Имущество», нажмите «+» у «Домов», подобавляйте в список, и посмотрите, как список выглядит и прокручивается. (Другие вкладки и списки пока не работают)
vxg, Именно этот адаптер «три в одном» я сейчас и делаю на основе вашего кода. Но каждый из трёх разделов списка нужно как-то скрывать. Для каждого списка я создал булевские переменные на скрывание списков, и в методе getView собирался возвращать пустой View для элементов списков, помеченных для скрывания.
Сначала немного затупил, но пока писал сообщение понял примерно, что нужно сделать. Я правильно понял, что при notifyDataSetChanged вызывается getCount адаптера, и полученное число раз вызывается getView? Тогда возвращать сумму в getCount и вычислять индексы в getView нужно без учёта длин скрытых списков?
ListView. После добавления кнопки перестал быть доступен сам ListView
Кастомизировал ListView с помощью нескольких TextView. Но после того, как добавил ImageButton сам.
Listview вывод данных и переход по нажатию на другой Listview SQLite
Доброго извините за название темы, долго не мог сформировать название, В общем у меня беда с.
Передача данных из ListView в другой Activity в ListView
Добрый день. Пытаюсь разобраться с передачей данных с ListView, но выходит что то непонятное.
Данные из SQlite в ListView, обработка события ListView
Ребят, есть БД, ListView. Надо при нажатии на строчку ListView вытащить данные int из БД. .
Источник
Могу ли я прокручивать ScrollView программно в Android?
есть ли способ прокрутить ScrollView программно на определенную позицию?
Я создал динамический TableLayout который находится в ScrollView . Поэтому я хочу, чтобы это было конкретное действие (например, нажатие кнопки и т. д.) конкретная строка должна автоматически прокручиваться в верхнюю позицию.
16 ответов
ответ от Pragna не всегда работает, попробуйте следующее:
я хотел, чтобы scrollView прокручивался непосредственно после onCreateView () (не после, например, нажатия кнопки). Чтобы заставить его работать, мне нужно было использовать ViewTreeObserver:
но будьте осторожны, что это будет называться каждый раз, когда что-то получает layouted (e.g Если вы установили вид невидимый или аналогичный), поэтому не забудьте удалить этот прослушиватель, если он вам больше не нужен:
public void removeGlobalOnLayoutListener (ViewTreeObserver.OnGlobalLayoutListener victim) на SDK Lvl
public void removeOnGlobalLayoutListener (ViewTreeObserver.OnGlobalLayoutListener victim) в SDK Lvl >= 16
использовать что-то вроде этого:
здесь много хороших ответов, но я хочу добавить только одну вещь. Иногда случается, что вы хотите прокрутить ScrollView до определенного вида макета, а не полный прокрутки вверх или вниз.
простой пример: в регистрационной форме, если пользователь нажимает кнопку «Регистрация», когда текст редактирования формы не заполнен, вы хотите прокрутить до этого конкретного текста редактирования, чтобы сообщить пользователю, что он должен заполнить это поле.
В этом случае, вы можете сделайте что-нибудь вроде этого:
или, если вы хотите гладкую прокрутку вместо мгновенной прокрутки:
очевидно, вы можете использовать любой тип представления вместо редактирования текста. Обратите внимание, что getBottom() возвращает координаты представления на основе его родительского макета, поэтому все виды, используемые внутри ScrollView, должны иметь только родительский (например, линейный макет).
Если у вас есть несколько родителей внутри ребенка ScrollView, единственное решение, которое я нашел вызвать requestChildFocus на родительский вид:
но в этом случае вы не можете иметь гладкий свиток.
Я надеюсь, что этот ответ может помочь кому-то с такой же проблемой.
Источник