Как создать пользовательский макет уведомлений в android?

Как показать полный контент в уведомлении в frist time в android с использованием стиля уведомлений или нужно перейти на пользовательский макет?

Solutions Collecting From Web of "Как создать пользовательский макет уведомлений в android?"

Использовать собственный contentView в вашем Notification Builder

Чтобы определить настраиваемый макет уведомлений, начните с создания экземпляра объекта RemoteViews, который раздувает файл макета XML. Затем вместо вызова методов, таких как setContentTitle (), вызовите setContent() . Чтобы задать информацию о контенте в пользовательском уведомлении, используйте методы в RemoteViews чтобы установить значения RemoteViews элементов представления:

Создайте XML-макет для уведомления в отдельном файле. Вы можете использовать любое имя файла, которое хотите, но вы должны использовать расширение .xml. В приложении используйте методы RemoteViews для определения значков и текста вашего уведомления. Поместите этот объект RemoteViews в свой NotificationCompat.Builder , вызвав setContent () . Избегайте установки фона. Подходим к объекту RemoteViews, потому что ваш цвет текста может стать нечитаемым.

Custom_push.xml имеет мои пользовательские представления R.id.image, R.id.text, R.id.title

 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/layout" android:layout_width="fill_parent" android:layout_height="64dp" android:padding="10dp" > <ImageView android:src="@mipmap/ic_launcher" android:id="@+id/image" android:layout_width="wrap_content" android:layout_height="fill_parent" android:layout_alignParentLeft="true" android:layout_marginRight="10dp" /> <TextView android:textSize="13dp" android:textColor="#000" android:text="Testing" android:id="@+id/title" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_toRightOf="@id/image" /> <TextView android:textSize="13dp" android:textColor="#000" android:text="Testing is awecome" android:id="@+id/text" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_toRightOf="@id/image" android:layout_below="@id/title" /> </RelativeLayout> 

Создавая объект RemoteViews и устанавливая его,

 RemoteViews contentView = new RemoteViews(getPackageName(), R.layout.custom_push); contentView.setImageViewResource(R.id.image, R.mipmap.ic_launcher); contentView.setTextViewText(R.id.title, "Custom notification"); contentView.setTextViewText(R.id.text, "This is a custom layout"); NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(this) .setSmallIcon(R.drawable.icon) .setContent(contentView); Notification notification = mBuilder.build(); notification.flags |= Notification.FLAG_AUTO_CANCEL; notification.defaults |= Notification.DEFAULT_SOUND; notification.defaults |= Notification.DEFAULT_VIBRATE; notificationManager.notify(1, notification); 

Введите описание изображения здесь

Проверьте: https://developer.android.com/guide/topics/ui/notifiers/notifications.html#ApplyStyle

Я предполагаю, что вы ищете .setSubText() . Уведомление flipkart, о котором вы указали, определенно не является обычным представлением.

 NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this) .setSmallIcon(icon) .setSubText("Limited Stocks, Don't Wait!") <------- .setContentTitle("Custom Notification Title") notificationBuilder.notify(1, notificationBuilder.build()); 

Я использовал BitTextStyle () для добавления выделенного текста в уведомление.

 return new NotificationCompat.Builder(context) .setSmallIcon(R.drawable.ic_mono) .setContentTitle(title) .setContentText(message) .setLargeIcon(icon) .setColor(ContextCompat.getColor(context, R.color.notification_color)) .setStyle(new NotificationCompat.BigTextStyle().bigText(title)) .setStyle(new NotificationCompat.BigTextStyle().bigText(message).setSummaryText("#hashtag")) .setShowWhen(true) .setAutoCancel(true);