2013-05-09 2 views
23

Мое приложение для Android должно быть в состоянии отправлять короткие оповещения широкой группе людей. Очевидное место для этого - в центре уведомлений. Полное уведомление отображается в тикере без проблем, но в центре уведомлений пользователь может видеть только первые слова пары, а затем elipsis. Уведомления не долго, всего 10-15 слов. Как я могу заставить текст обернуть новую строку?Android Notification- Показать полное сообщение

Мой код для создания уведомлений здесь

NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(this) 
    .setSmallIcon(R.drawable.splash) 
    .setContentTitle("Student Engauge") 
    .setContentText(extras.getString("message")) 
    .setAutoCancel(true) 
    .setTicker(extras.getString("message")); 
    final int notificationId = 1; 
    NotificationManager nm = (NotificationManager) getApplicationContext() 
      .getSystemService(Context.NOTIFICATION_SERVICE); 
    nm.notify(notificationId, mBuilder.build()); 

ответ

42

Чтобы показать большой кусок текста, используйте BigTextStyle. Вот пример кода, приведенный в BigTextStyle. Это уведомление будет содержать одну строку текста и при необходимости расширится до большего количества строк.

Notification noti = new Notification.Builder() 
.setContentTitle("New mail from " + sender.toString()) 
.setContentText(subject) 
.setSmallIcon(R.drawable.new_mail) 
.setLargeIcon(aBitmap) 
.setStyle(new Notification.BigTextStyle() 
    .bigText(aVeryLongString)) 
.build(); 

Для андроида поддержки библиотеки

Notification noti = new Notification.Builder() 
.setContentTitle("New mail from " + sender.toString()) 
.setContentText(subject) 
.setSmallIcon(R.drawable.new_mail) 
.setLargeIcon(aBitmap) 
.setStyle(new NotificationCompat.BigTextStyle() 
    .bigText(aVeryLongString)) 
.build(); 
+0

Большие виды не поддерживается, прежде чем 4.1, я хотел бы что-то, что это более поддерживается – centree

+7

'SetStyle (новый NotificationCompat.BigTextStyle(). BigText (aVeryLongString))' – likejiujitsu

+0

@centree Используйте NotificationCompat для поддержки новых функций уведомлений на старых устройствах. http://developer.android.com/reference/android/support/v4/app/NotificationCompat.html – pmont

4

Для Android 4.1 и более поздних устройств, большая точка зрения является наиболее подходящим решением, чтобы показать большое количество текста. Для устройств с предварительным 4.1 вы можете использовать настраиваемый макет уведомлений, чтобы показать больше данных, например упомянутых here. Но вы должны иметь в виду две вещи:

  1. Из official documentation

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

  2. Пользовательские макеты уведомлений имеют некоторые ограничения. Слишком длинные тексты не показаны полностью, но 10-15 слов, вероятно, подходят для пользовательского макета. This answer имеет больше информации об ограничении пользовательских макетов уведомления
Смежные вопросы