#android #notifications
#Android #уведомления
Вопрос:
Текстовое содержимое слишком длинное, чтобы отображаться в уведомлении, и оно обрезается. Что я могу сделать? Пожалуйста, помогите.
Комментарии:
1. Осмелюсь сказать, что вы найдете много информации об этом в документации Android по уведомлениям .
2. Спасибо. В документации по уведомлениям содержится много информации. Но в нем не упоминается, как выделить. Мне нужно отобразить все текстовое содержимое для пользователя.
3. Похоже, система уведомлений предназначена для обработки пользовательских макетов, но не для пользовательского поведения. И, честно говоря, я думаю, что это хорошо. Поддержание чистоты уведомлений важнее, чем разрешение модных вещей. Я не понимаю, как вы могли бы ввести такую «логику» в уведомление. Возможно, для этого вам нужно создать виджет главного экрана.
4. @Till — Независимо от объема информации, доступной в документации Android, StackOverflow должен быть самостоятельным ресурсом. Даже если информацию легко найти в другом месте, нет причин не копировать эту информацию здесь.
5. @SpencerRuport я просто дал OP подсказку, где он может найти ответ, потому что, к сожалению, у меня нет удовлетворительного ответа для него. Я согласен, что SO может быть очень полезным в поиске вашего пути через огромную информационную нагрузку, предоставляемую документацией Android. 🙂
Ответ №1:
Попробуйте это:
у меня это работает, я его протестировал.
Сначала создайте пользовательское уведомление :
как показано здесь: Эта ссылка на сайт разработчика.
После этого в текстовом представлении сообщения, которое вы хотите выделить, поместите эту строку:
android:ellipsize="marquee"
И это работает так, как вы хотите.
Наслаждайтесь.
Надеюсь, это вам поможет.
Спасибо.
Комментарии:
1. Marquee не очень настраивается, кроме RepeatLimit: developer.android.com/reference/android/widget/… Никакого контроля скорости или, скажем, прокрутки вперед и назад, в отличие от цикла: code.google.com/p/android/issues/detail?id=6567
2. К сожалению, OP не сказал, является ли это тем, что он искал. Но, насколько я могу tell…it есть.
Ответ №2:
Настройте пользовательский макет для уведомления. В макете используйте TextView для уведомления, затем в XML для TextView добавьте:
android:ellipsize="marquee"
Ответ №3:
<TextView
android:id="@ id/place"
android:layout_toRightOf="@ id/line1"
android:clickable="true"
android:ellipsize="marquee"
android:fadingEdge="horizontal"
android:gravity="bottom"
android:lines="1"
android:marqueeRepeatLimit="marquee_forever"
android:paddingLeft="4dip"
android:scrollHorizontally="true"
android:textColor="#00BFFF"
android:textSize="18dip" />
Удалите любую бесполезную строку и измените идентификатор в соответствии с кодом ur.