Как я могу выделить текстовое содержимое в уведомлении?

#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.