- Создание прокрутки TextView на Android
- 24 ответов
- бонус:
- Делаем TextView прокручиваемым на Android
- Файл main.xml
- Файл WordExtractTest.java
- Бонус:
- Android Scrollable TextView | Vertical Using XML and Programmatically
- Kotlin
- Java
- Complete code of Android Scrollable TextView
- ScrollView и HorizontalScrollView
- Методы scrollBy() и scrollTo()
Создание прокрутки TextView на Android
я отображаю текст в textview, который кажется слишком длинным, чтобы соответствовать на один экран. Мне нужно сделать мой виджет TextView с прокруткой. Как мне это сделать? это?
24 ответов
вам не нужно использовать ScrollView на самом деле.
свойства TextView в xml-файле вашего макета.
Бинго, она прокручивается!
вот как я это сделал чисто в XML:
Примечания:
android:fillViewport=»true» в сочетании с android:layout_weight=»1.0″ заставит textview занять все доступное пространство.
при определении Scrollview не указывайте android:layout_height=»fill_parent» в противном случае scrollview не работает! (из-за этого я только что потерял целый час! ФФС.)
PRO СОВЕТ:
программно прокрутите вниз после добавления текста, используйте это:
все, что действительно необходимо, это setMovementMethod (). Вот пример использования LinearLayout.
main.в XML WordExtractTest.java
сделайте свой textview просто добавив Это
не надо ставить в
вы можете сделать свою работу, просто добавив:
и поместите этот код в свой класс Java:
- вокруг TextView на ScrollView ; или
- установите метод перемещения в ScrollingMovementMethod.getInstance(); .
лучший способ, который я нашел:
замените TextView на EditText следующими дополнительными атрибутами:
нет необходимости в обертывании в ScrollView.
Это «как применить полосу прокрутки к вашему TextView», используя только XML.
во-первых, вам нужно взять элемент управления Textview в main.в XML файл и записать в него текст . вот так:
затем поместите элемент управления text view между scrollview для отображения полосы прокрутки для этого текста:
простой. Вот как я это сделал:—5—>
бонус:
чтобы текстовый вид прокручивался вниз по мере его заполнения, вы должны добавить:
в xml-файл TextView. Он будет прокручиваться вниз автоматически, как больше текста приходит.
конечно, вам нужно добавить текст с помощью функции append вместо set текст:
я использовал его для журнала.
надеюсь, это поможет;)
«pro tip» выше от кого-то где-то (создание прокрутки TextView на Android) отлично работает, однако, что делать, если вы динамически добавляете текст в ScrollView и хотели бы автоматически прокручивать вниз после добавления только когда пользователь находится в нижней части ScrollView? (Возможно, потому, что если пользователь прокрутил вверх, чтобы прочитать что-то, что вы не хотите автоматически сбрасывать вниз во время добавления, которое будет раздражающий.)
в любом случае, вот это:
в mTextStatus.getLineHeight() сделает это так, что вы не scrollToBottom (), если пользователь находится в пределах одной строки от конца ScrollView.
Это обеспечит плавную прокрутку текста с полосой прокрутки.
Если вы хотите, чтобы текст прокручивался в textview, вы можете выполнить следующее:
сначала вам нужно подкласс textview.
и затем использовать это.
Ниже приведен пример подкласса textview.
теперь, вы должны использовать это в XML следующим образом:
Я не нашел прокрутки TextView для поддержки жеста «бросок», где он продолжает прокрутку после щелчка вверх или вниз. Я закончил тем, что реализовал это сам, потому что я не хотел использовать ScrollView по разным причинам, и, похоже, не было MovementMethod, который позволял мне выбирать текст и нажимать на ссылки.
добавьте следующее в textview в XML.
и, наконец, добавить
когда вы закончите с прокруткой, добавьте эту строку в последнюю строку представления при вводе чего-либо в представлении:
добавьте это в свой XML-макет:
и в коде вы должны написать следующие строки:
Если вы не хотите использовать решение EditText, вам может повезти с:
код ниже создает автоматическую горизонтальную прокрутку textview:
при добавлении TextView в xml используйте
задайте следующие свойства TextView в onCreate ()
используйте его так
в моем случае.Макет Ограничения.В качестве 2.3.
я боролся с этим больше недели и, наконец, понял, как это сделать!
моя проблема заключалась в том, что все будет прокручиваться как «блок». Сам текст прокручивался, но как кусок, а не строка за строкой. Это, очевидно, не сработало для меня, потому что это отрезало бы линии внизу. Все предыдущие решения не работали для меня, поэтому я создал свой собственный.
вот самое простое решение на сегодняшний день:
создайте файл класса: ‘PerfectScrollableTextView’ внутри пакета, затем скопируйте и вставьте этот код в:
наконец, измените свой «TextView» в XML:
поставить maxLines и scrollbars внутри TextView в xml.
затем в коде java.
у меня была эта проблема, когда я использовал TextView внутри ScrollView . Это решение сработало для меня.
всякий раз, когда вам нужно используйте ScrollView в качестве родителя, и вы также используете метод перемещения прокрутки с TextView.
и портрет для ландшафтного устройства, что время происходят некоторые проблемы. (например) вся страница прокручивается, но метод перемещения прокрутки не может работать.
Если вам все еще нужно использовать ScrollView в качестве родительского или метода перемещения прокрутки, вы также используете ниже desc.
Если у вас нет никаких проблем затем вы используете EditText вместо TextView
здесь EditText ведет себя как TextView
Источник
Делаем TextView прокручиваемым на Android
Я отображаю текст в текстовом представлении, которое кажется слишком длинным, чтобы поместиться на одном экране. Мне нужно сделать мой TextView прокручиваемым. Как я могу это сделать?
Вам не нужно использовать на ScrollView самом деле.
свойства вашего TextView в XML-файле вашего макета.
Бинго, это свитки!
Вот как я сделал это чисто в XML:
НОТЫ:
android:fillViewport=»true» в сочетании с android:layout_weight=»1.0″ заставит textview занять все доступное пространство.
При определении Scrollview НЕ указывайте, android:layout_height=»fill_parent» иначе scrollview не работает! (это заставило меня потратить впустую час только сейчас! FFS).
PRO TIP:
Чтобы программно прокрутить до конца после добавления текста, используйте это:
Все, что действительно необходимо, это setMovementMethod (). Вот пример использования LinearLayout.
Файл main.xml
Файл WordExtractTest.java
Сделайте свое текстовое представление просто добавив это
Не нужно ставить в
Вы можете сделать свою работу, просто добавив:
И поместите этот код в свой класс Java:
Вы также можете
- окружить TextView собой ScrollView ; или
- установите метод Movement в ScrollingMovementMethod.getInstance(); .
Лучший способ, который я нашел:
Замените TextView на EditText с этими дополнительными атрибутами:
Там нет необходимости для упаковки в ScrollView.
Просто. Вот как я это сделал:
Бонус:
Чтобы текстовое представление прокручивалось вниз по мере заполнения текста, вы должны добавить:
в текстовый XML-файл. Он будет прокручиваться автоматически по мере поступления текста.
Конечно, вам нужно добавить текст, используя функцию добавления вместо набора текста:
Я использовал это для целей журнала.
Надеюсь, это поможет 😉
Это «Как применить ScrollBar к вашему TextView», используя только XML.
Во-первых, вам нужно взять элемент управления Textview в файле main.xml и записать в него некоторый текст . вот так:
Затем поместите элемент управления представлением текста между областью прокрутки, чтобы отобразить полосу прокрутки для этого текста:
Это обеспечит плавную прокрутку текста с помощью полосы прокрутки.
«Про наконечник» выше от кого — то Где — то ( Создания TextView Прокручиваемого на Android ) прекрасно работает, однако, что , если вы динамически добавлять текст к ScrollView и хотели бы автоматически прокрутки на дно после Append только тогда, когда пользователь находится в нижней части ScrollView? (Возможно, потому что, если пользователь прокрутил что-то, чтобы прочитать что-то, вы не хотите автоматически сбрасывать его во время добавления, что будет раздражать.)
Во всяком случае, вот оно:
MTextStatus.getLineHeight () сделает так, чтобы вы не использовали scrollToBottom (), если пользователь находится в пределах одной строки от конца ScrollView.
Если вы хотите, чтобы текст прокручивался в текстовом представлении, вы можете выполнить следующие действия:
Сначала вы должны создать подкласс textview.
И затем используйте это.
Ниже приведен пример просмотра подкласса текста.
Теперь вы должны использовать это в XML следующим образом:
Добавьте следующее в текстовое представление в XML.
И, наконец, добавить
Я не нашел прокрутки TextView для поддержки жеста «броска», когда он продолжает прокручиваться после пролистывания вверх или вниз. Я сам реализовал это, потому что не хотел использовать ScrollView по разным причинам, и, похоже, не было MovementMethod, который позволял бы мне выбирать текст и нажимать на ссылки.
В kotlin для того, чтобы сделать прокручиваемый текстовый вид
а также добавить в XML это свойство
Когда вы закончите с прокруткой, добавьте эту строку в последнюю строку представления, когда вы вводите что-либо в представление:
Если вы не хотите использовать решение EditText, то вам может повезти с:
Добавьте это к вашему XML-макету:
И в коде вы должны написать следующие строки:
Код ниже создает автоматическую горизонтальную прокрутку текста:
При добавлении TextView для использования XML
Установите следующие свойства TextView в onCreate ()
Вы можете прокрутить его сейчас.
Используйте это так
В моем случае. Ограничение Layout.AS 2.3.
Я боролся с этим больше недели и наконец понял, как заставить это работать!
Моя проблема заключалась в том, что все будет прокручиваться как «блок». Сам текст прокручивался, но скорее как кусок, чем строка за строкой. Это, очевидно, не работает для меня, потому что это будет отрезать линии внизу. Все предыдущие решения не работали для меня, поэтому я разработал собственное.
Вот самое простое решение на сегодняшний день:
Создайте файл класса с именем: ‘PerfectScrollableTextView’ внутри пакета, затем скопируйте и вставьте этот код в:
Наконец, измените ваш TextView в XML:
Положите maxLines и scrollbars внутри TextView в XML.
Тогда в коде Java.
У меня была эта проблема, когда я использовал TextView внутри ScrollView . Это решение сработало для меня.
всякий раз, когда вам нужно использовать ScrollView в качестве родителя , а также вы используете метод перемещения прокрутки с TextView.
А при портретной ориентации вашего устройства в это время возникают некоторые проблемы . (например) вся страница прокручивается, но метод перемещения прокрутки не может работать.
если вам все еще нужно использовать ScrollView в качестве родительского метода или метода прокрутки, то вы также используете ниже desc.
Если у вас нет никаких проблем, тогда вы используете EditText вместо TextView
Здесь EditText ведет себя как TextView
Источник
Android Scrollable TextView | Vertical Using XML and Programmatically
Making TextView scrollable on Android you need to use a android:scrollbars properties of your TextView in your layout’s XML file.
Then use the below code in the Activity file. This method will enable scrolling on TextView.
Kotlin
Java
ScrollView is needed when you want to show too long text and should fit into one screen.
Complete code of Android Scrollable TextView
Let’s build an app and demonstrates it, Here is the complete step by step tutorial:-
Step 1. Create an android project in the android studio (Follow this tutorial: Android First Program in Android Studio).
Step 2. Open the strings.xml file.
Step 3. Add your long text in the strings.xml file.
You can add your own text, this is only for testing purpose.
Step 4. Add the below code in activity_main.xml
Setting the height of TextView 300dp to see how it works.
Step 5. Add the below code in MainActivity.kt
For java, you can use it from the tutorial top section.
Step 4. Now Run the application, in an emulator or on your Android device.
Output screenshot Android Scrollable TextView:-
Download Link and Source of Scrollable TextView Android kotlin code in Github
Do comment if you have any doubts or suggestions on this tutorial.
Note: This example (Project) is developed in Android Studio 3.3.2. Tested on Android 9 ( Android-P), compile SDK version API 28: Android 9.0 (Pie)
MinSdkVersion=25″
TargetSdkVersion=28″Coding in Kotlin
Degree in Computer Science and Engineer: App Developer and has multiple Programming languages experience. Enthusiasm for technology & like learning technical.
Источник
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 с использованием эффекта параллакса. Вы прокручиваете длинный текст, а задний фон прокручивается чуть медленнее. Возможно, кому-то пригодится. Там же можно скачать готовое демо и просмотреть в действии.
Источник