Многострочные уведомления / уведомления Android с более длинным текстом

Мне нужно создать уведомление с более длинным текстом, возможно ли это? По умолчанию это не так, но вы можете использовать собственный макет , который я и сделал. Теперь я могу отображать несколько строк, но, как вы можете видеть, текст все еще сломан / не отображается полностью? ): Может кто-нибудь, пожалуйста, скажите мне, что я делаю неправильно / если есть фиксированный лимит на размер уведомлений? Если вы посмотрите на скриншот, вы заметите, что осталось еще много места … Спасибо за любой намек!

BTW вот XML, используемый для пользовательского макета, на основе http://developer.android.com/guide/topics/ui/notifiers/notifications.html#CustomNotification

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="fill_parent" android:padding="3dp" > <ImageView android:id="@+id/image" android:layout_width="wrap_content" android:layout_height="fill_parent" android:layout_marginRight="10dp" /> <TextView android:id="@+id/text" android:layout_width="wrap_content" android:layout_height="fill_parent" android:textColor="#000" /> </LinearLayout> 

Более длинный текст уведомления

Solutions Collecting From Web of "Многострочные уведомления / уведомления Android с более длинным текстом"

Для Jelly Bean и выше вы можете использовать расширяемое уведомление. Самый простой способ – использовать NotificationCompat.BigTextStyle для вашего уведомления.

Вот так:

 NotificationCompat.BigTextStyle bigTextStyle = new NotificationCompat.BigTextStyle(); bigTextStyle.setBigContentTitle(getString(R.string.title)); bigTextStyle.bigText(getString(R.string.long_explanation)); mBuilder.setStyle(bigTextStyle); 
 NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(this) .setSmallIcon(R.drawable.ic_notification) .setContentTitle(title) .setStyle(new NotificationCompat.BigTextStyle() .bigText(message)) .setContentText(message) .setDefaults(NotificationCompat.DEFAULT_SOUND) .setContentIntent(contentIntent) .setAutoCancel(true); mNotificationManager.notify(requestID, mBuilder.build()); 

Однажды reffer https://developer.android.com/guide/topics/ui/notifiers/notifications.html

Просмотр уведомлений был ограничен высотой 65sp с. Это была подробная информация о реализации и не документирована и была изменена в Android 4.1 для поддержки расширяемых уведомлений . Поэтому не полагайтесь на это конкретное значение, а скорее полагайтесь на то, что представление имеет ограниченную высоту.

Вот status_bar_latest_event.xml который использовался для раздувания просмотров в области уведомлений:

 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="65sp" android:orientation="vertical" > <com.android.server.status.LatestItemView android:id="@+id/content" android:layout_width="match_parent" android:layout_height="64sp" android:background="@drawable/status_bar_item_background" android:focusable="true" android:clickable="true" android:paddingRight="6sp" > </com.android.server.status.LatestItemView> <View android:layout_width="match_parent" android:layout_height="1sp" android:background="@drawable/divider_horizontal_bright" /> </LinearLayout> 

Я понимаю, что система уведомлений Android имеет ограниченную высоту для каждого уведомления, чтобы избежать одного уведомления, заполняющего экран.

Со страницы, которую вы указали:

Внимание. При использовании настраиваемого макета уведомлений обратите особое внимание на то, чтобы ваш пользовательский макет работал с различными ориентациями и разрешениями устройств. Хотя этот совет относится ко всем макетам View, это особенно важно для уведомлений, поскольку пространство в ящике уведомлений очень ограничено . Не делайте слишком сложным свой собственный макет, и обязательно проверяйте его в различных конфигурациях.

Тем не менее, вы можете отображать несколько уведомлений, «липких» уведомлений или, возможно, прокручивать текст внутри уведомления.

Для получения дополнительной информации о том, что вы можете делать с уведомлениями, см.

Устройство уведомления и уведомления

Android предоставляет расширенные уведомления, расширяющие возможности просмотра, которые они поддерживают 3 стиля, стиль большой пиктограммы, стиль входящих сообщений, стиль большого текста (256 дп), но только от версий Android больше, чем желе. Для более низких версий у нас нет большого уведомления о стиле текста.

Это то, что сработало для меня на 5.0. Это красиво обертывает длинные строки. И он также позволяет вам предоставить массив строк, которые будут отображаться разделенными новой строкой.

  String[] multilineDescription = new String[] { "line 1", "another very long line that will get wrapped." }; NotificationCompat.Builder builder = new NotificationCompat.Builder(appContext) .setSmallIcon(smallIcon) .setContentTitle(title) .setContentText("Pull down for more information"); String description; if (null == multilineDescription || multilineDescription.length == 0) { description = "No more information."; } else { description = multilineDescription[0]; for (int i=1; i<multilineDescription.length; i++) { description += System.getProperty("line.separator"); description += multilineDescription[i]; } } builder.setStyle(new NotificationCompat.BigTextStyle().bigText(description));