- Что означает эллипсис в андроиде?
- Android TextView ellipsize property example
- Android Ellipsize
- Ellipsize property values
- Ellipsize end
- Ellipsize start
- Ellipsize middle
- Ellipsize marquee
- Make textView manually scrollable across the screen
- Android, как ограничить ширину TextView (и добавить три точки в конце текста)?
- 18 ответов
- для Android:maxlines, которое=»1″
- ellipsize= «end»
- ellipsize= «marquee»
- HorizontalScrollView с scrollHorizontally
- Есть ли способ заставить ellipsize = «marquee» всегда прокручиваться?
- 8 ответов
- Примере
Что означает эллипсис в андроиде?
Я добавил EditText в мой макет и добавил подсказку и сделал его по центру горизонтально.
При запуске приложения подсказка была невидимой. Я обнаружил, что значение ellipsize для TextView должно быть start :
В документации на Android я читал:
Если установлено, вызывает слова, которые длиннее, чем вид широко, чтобы быть эллипсированный, а не разбитый посередине.
Проблема заключается в том, что ellipsize не найден в словаре. Может ли кто-нибудь объяснить мне, какие выгоды мы можем получить с помощью атрибута ellipsize ? И в чем разница между start , end , middle ?
Вы можете найти документацию здесь.
В соответствии с вашим требованием вы можете попробовать вариант.
to эллипсис, неологизм, означает сокращение текста с помощью ellipsis, т.е. трех точек . или чаще ligature … , чтобы стоять за опущенные биты.
Скажем, исходное значение pf text view aaabbbccc и его соответствие внутри представления
start вывод будет: … bccc
end вывод будет: aaab…
middle вывод будет: aa… cc
marquee вывод будет: aaabbbccc автоматическое перемещение справа налево
для моего опыта, Ellipsis работает только в том случае, если установлены два атрибута.
для ширины textview, wrap_content или match_parent оба должны быть хорошими.
How to Add an ellipsis in a TextView
android: эллипсизация добавлена в API уровня 1. Эллипсис состоит из трех периодов подряд. (…).
В этот момент эллипс пока не будет отображаться, так как TextView будет автоматически расширяться по умолчанию при вводе нового текста. Вам нужно будет ограничить TextView каким-то образом. Сделайте это, вы можете использовать либо добавить в свой TextView a scrollHorizontally, minLines, or maxLines для отображения эллипсиса.
Чтобы сделать эллипс:
Более подробную информацию вы можете найти здесь
ellipsis – это три периода подряд…
TextView будет использовать многоточие, если он не может расширяться, чтобы показать весь текст. Атрибут ellipsized устанавливает положение трех точек, если это необходимо.
Предположим, что выше ваш текст, и если вы используете атрибут ellipsize start , он будет выглядеть следующим образом
с атрибутом end
Примечание. Ваш текст должен быть больше, чем поле контейнера, для следующего:
Установите это свойство для редактирования текста. Elipsize работает с отключенным текстом редактирования
или setKeyListener (null);
Вот пример того, как работает ellipsize без использования устаревшего android:singleLine=»true» в ConstraintLayout:
помните, если у вас есть текст, который должен быть в одной строке, то измените maxLines на 1.
Источник
Android TextView ellipsize property example
This article is about how to work with Android TextView ellipsize property.
Android Ellipsize
Android TextView ellipsize property Causes words in the text that are longer than the view’s width to be ellipsized ( means to shorten text using an ellipsis , i.e. three dots …) instead of broken in the middle to fit it inside the given view.
Ellipsize property values
You can use the following values for ellipsize property:
Ellipsize end
This will truncate your text from the end and put three dots at the end.
XML
Set maxLines to 1 and set ellipsize to “end”
Kotlin Code
Find the textview. Then setMaxLines to 1 and setEllipsize to TextUtils.TruncateAt.END .
Ellipsize start
This will keep the ending portion of your text and replace the starting part with three dots.
XML
Set singleLine to “ true” and ellipsize to “start” .
Kotlin Code
Find the textView, set singleLine, and then set the ellipsize to TextUtils.TruncateAt.START
Ellipsize middle
This will keep the starting and ending of the text and place three dots in the middle.
XML
Set singleLine to true and ellipsize to “middle” .
Kotlin Code
Find the textView, set singleLine to “true” set the ellipsize to TextUtils.TruncateAt.MIDDLE
Ellipsize marquee
It will make your text automatically scroll across the screen horizontally. There are no three dots involved in it.
XML
Set singleLine to true and ellipsize to “marquee”
You will also have to set the textView as selected using kotlin code.
Kotlin Code
Instead of doing half thing from XML and half from kotlin code, you can make your text scroll automatically across the screen using kotlin code only.
Make textView manually scrollable across the screen
The ellipsize marquee makes the text automatically scroll across the screen but if you want to give the scrolling control to the user, you can put your TextView inside a HorizontalScrollView and set the textView’s scrollHorizontally property to “true” .
Источник
Android, как ограничить ширину TextView (и добавить три точки в конце текста)?
у меня есть TextView что я хочу ограничить его символы. На самом деле, я могу это сделать, но то, что я ищу, — это как добавить три точки (. ) в конце строки. Это показывает, что текст продолжается. Это мой XML, но нет точек, хотя это ограничивает мой текст.
18 ответов
удалено:
добавить еще одно свойство android:singleLine=»true» в вашем Textview
обновление:
следующее, что я узнал, играя с различными вариантами форсирования TextView в одну строку (без троеточия).
для Android:maxlines, которое=»1″
это просто заставляет текст в одну строку. Любой дополнительный Текст скрыт.
ellipsize= «end»
это отсекает текст, который не подходит, но позволяет пользователям знать, что текст был усечен путем добавления многоточия (три точки).
ellipsize= «marquee»
это заставляет текст автоматически прокручиваться по TextView. Обратите внимание, что иногда он должен быть установлен в коде:
якобы android:maxLines=»1″ и android:singleLine=»true» должен делать в основном то же самое, и так как singleLine видимо устаревший я бы предпочел не использовать его, но когда я вынимаю его, шатер больше не прокручивается. Принимая maxLines out не делает хотя, повлияй на это.
HorizontalScrollView с scrollHorizontally
это позволяет пользователю вручную прокручивать, чтобы увидеть всю строку текста.
попробуйте это свойство TextView в файле макета..
Я так понимаю, вы хотите ограничить ширину одной строки и не ограничивать ее символом? С singleLine устарел, вы можете попробовать использовать следующий вместе:
например. вы можете использовать
это ограничит длину texview до 13, но проблема в том, если вы попытаетесь добавить 3 точки(. ), он не будет отображать его, так как он будет частью длины textview.
помимо этого вы должны использовать
Я получил желаемый результат с помощью
трюк установлен maxLines и minLines к тому же значению. и не только android: lines = «2», не делайте трюк. Кроме того, вы избегаете любых устаревших атрибутов.
выход: В Евангелии от Матфея 13, ученики спросили Иисуса, почему он говорит народу притчами. Он ответил: «тебе дано знать.
вы можете ограничить количество символов textview и добавить (. ) после текста. Предположим, вам нужно показать только 5 букв, а затем вам нужно показать (. ), Просто сделайте следующее :
немного Хак ^_^. Хотя это не очень хорошее решение. Но работа, вокруг которой работал для меня: D
EDIT: Я добавил проверку на меньший характер в соответствии с вашим ограниченным нет. характеров.
Я использую горизонтальный Recyclerview.
1) здесь, в CardView, TextView искажается вертикально при использовании
Проверьте полужирный TextViews Wyman Group, Jaskolski.
2) но когда я использовал singleLine вместе с ellipsize —
Проверьте полужирный TextViews Wyman Group, Jaskolski.
2-е решение работало для меня правильно (используя singleLine). Также я тестировал в OS версия: 4.1 и выше (до 8.0), он работает нормально без каких-либо сбоев.
вам нужно добавить следующие строки в макет для textview
надеюсь, это сработает для вас.
для работы с android: ellipsize атрибут, вы должны ограничить ширина макета на TextView, таких, что текст находится за пределами видимости TextView.
и android: layout_width атрибут играет здесь ключевую роль, установите его соответственно.
один пример можно:
теперь, здесь, если текст in android: text= «это очень длинный текст для отображения» выходит из поля зрения из TextView с android: layout_width= «120dp», android: ellipsize= «end» обрежет текст и место . (3 точки) после него. т. е. это очень долго. будет отображаться в TextView.
Я думаю, что вы даете фиксировать высоту и ширину текста. Тогда ваше решение будет работать.
вы можете написать эту строку в xml, где вы берете textview :
добавьте эти две строки в текст
подход @AzharShaikh работает отлично.
но я понимаю, что проблема в том, что TextView будет усечен словом (по умолчанию). Показать, если у нас есть текст, как:
тест long_line_without_any_space_abcdefgh
Источник
Есть ли способ заставить ellipsize = «marquee» всегда прокручиваться?
Я хочу использовать эффект выделения в TextView, но текст прокручивается только тогда, когда TextView получает фокус. Это проблема, потому что в моем случае это невозможно.
Есть ли способ, чтобы TextView всегда прокручивал свой текст? Я видел, как это делается в приложении Android Market, где имя приложения будет прокручиваться в строке заголовка, даже если оно не получает фокус, но я не мог найти упоминания об этом в документации API.
8 ответов
Я столкнулся с проблемой, и самое короткое решение, которое я придумал, — это создать новый класс, производный от TextView. Класс должен переопределить три метода onFocusChanged , onWindowFocusChanged и isFocused , чтобы все TextView были сфокусированы.
Сегодня я наконец столкнулся с этой проблемой и загорелся hierarchyviewer в приложении Android Market.
Глядя на заголовок на подробном экране приложения, они используют старый добрый TextView . Изучение его свойств показало, что он не был сфокусирован, не мог быть сфокусированным и, как правило, был очень обычным — за исключением того факта, что он был отмечен как выбранный .
Одна строчка кода позже, и у меня все заработало 🙂
Это имеет смысл, учитывая то, что написано в Javadoc :
Вид можно выбрать или нет. Обратите внимание, что выделение — это не то же самое, что фокус. Представления обычно выбираются в контексте AdapterView, например ListView или GridView.
Т.е. когда вы прокручиваете элемент в виде списка (например, в приложении «Маркет»), только тогда начинает прокручиваться текст now-selected . И поскольку этот конкретный TextView не может быть выбран для фокусировки или клика, он никогда не потеряет свое состояние выбора.
К сожалению, насколько мне известно, невозможно предварительно установить выбранное состояние из XML макета.
Но однострочный выше меня работает нормально.
Просто поместите эти параметры в свой TextView. Оно работает 🙂
TranslateAnimation работает, «вытягивая» вид в одном направлении на указанную величину. Вы можете указать, где начинать это «перетягивание», а где заканчивать.
FromXDelta устанавливает смещение начальной позиции движения по оси X.
ToXDelta определяет конечную позицию смещения движения по оси X.
Если ширина вашего текста больше, чем модуль разницы между fromXDelta и toXDelta, текст не сможет полностью перемещаться по экрану.
Примере
Предположим, у нас размер экрана 320×240 пикселей. У нас есть TextView с текстом шириной 700 пикселей, и мы хотим создать анимацию, которая «вытягивает» текст, чтобы мы могли видеть конец фразы.
Сначала мы устанавливаем fromXDelta = 0 так, чтобы движение не имело начального смещения. Теперь нам нужно вычислить значение toXDelta. Чтобы добиться желаемого эффекта, нам нужно «вытянуть» текст на столько же пикселей, сколько он занимает за пределы экрана. (на схеме обозначено >>>) Поскольку наш текст имеет ширину 700, а видимая область — 320 пикселей (ширина экрана), мы устанавливаем:
А как нам определить ширину экрана и ширину текста?
Взяв фрагмент Зара в качестве отправной точки:
Могут быть более простые способы сделать это, но это работает для любого представления, которое вы можете придумать, и его можно использовать повторно. Это особенно полезно, если вы хотите анимировать TextView в ListView, не нарушая возможности enabled / onFocus этого TextView. Он также непрерывно прокручивается, даже если вид не сфокусирован.
Не знаю, нужен ли вам ответ, но я нашел простой способ сделать это.
Настройте свою анимацию так:
START_POS_X , END_POS_X , START_POS_Y и END_POS_Y — это значения float , а TICKER_DURATION — это int , которое я объявил с другими моими константами .
Затем вы можете применить эту анимацию к своему TextView:
Моя анимация начинается с правой стороны вне экрана (300f) и заканчивается с левой стороны вне экрана (-300f) с продолжительностью 15 секунд (15000).
Я написал следующий код для ListView с выделенными текстовыми элементами. Он основан на решении setSelected, описанном выше. По сути, я расширяю класс ArrayAdapter и переопределяю метод getView, чтобы выбрать TextView перед его возвратом:
Это ответ, который появляется в верхней части моего поиска в Google, поэтому я подумал, что могу опубликовать здесь полезный ответ, так как мне трудно вспомнить это довольно часто. В любом случае, это работает для меня и требует атрибутов XML и onFocusChangeListener.
Источник