我正在尝试设置自定义通知布局
RemoteViews contentView = new RemoteViews(getPackageName(), R.layout.custom_notification_layout);
contentView.setImageViewResource(R.id.image_customNote,R.mipmap.ic_notification);
contentView.setTextViewText(R.id.title_customNote,title);
contentView.setTextViewText(R.id.text_customNote, messageBody);
Uri defaultSoundUri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this)
.setPriority(Notification.PRIORITY_HIGH)
.setAutoCancel(true)
//.setContentText(title)
// .setContentText(messageBody)
.setTicker(title)
.setSound(defaultSoundUri)
/* .setStyle(new NotificationCompat.BigTextStyle().bigText(title))
.setStyle(new NotificationCompat.BigTextStyle().bigText(messageBody))*/
.setCustomContentView(contentView)
.setCustomBigContentView(contentView)
.setContentIntent(pendingIntent)
.setSmallIcon(getNotificationIcon()).setColor(ContextCompat.getColor(this, R.color.colorPrimary));
// .addAction(R.drawable.ic_launcher, "Previous", pendingIntent)
// .setColor(ContextCompat.getColor(this, R.color.colorPrimary));
notificationManager.notify(new Random().nextInt(), notificationBuilder.build());
这是我正在尝试的代码,
这是我的xml文件
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/layout"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<ImageView
android:id="@+id/image_customNote"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_marginRight="10dp" />
<TextView
android:id="@+id/title_customNote"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@android:color/black"
android:layout_toRightOf="@id/image_customNote"
/>
<TextView
android:id="@+id/text_customNote"
android:textColor="@android:color/black"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/title_customNote"
android:layout_toRightOf="@id/image_customNote" />
</RelativeLayout>
当我收到通知时,自定义视图未设置且通知视图完全空白...请帮助
答案 0 :(得分:1)
问题在于你的xml。
这个xml对我有用:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/layout"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<ImageView
android:id="@+id/image_customNote"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_marginRight="10dp" />
<TextView
android:id="@+id/title_customNote"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@android:color/holo_blue_dark"
android:layout_toRightOf="@id/image_customNote" />
<TextView
android:id="@+id/text_customNote"
android:textColor="@android:color/holo_blue_dark"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/title_customNote"
android:layout_toRightOf="@id/image_customNote" />
</RelativeLayout>
答案 1 :(得分:0)
这是我编辑过的已编辑的代码段,会显示通知。
int icon = R.drawable.icon;
NotificationManager mNotificationManager = (NotificationManager)getSystemService(NOTIFICATION_SERVICE);
RemoteViews contentView = new RemoteViews(getPackageName(), R.layout.custom_notification_layout);
contentView.setImageViewResource(R.id.image_customNote, R.mipmap.app_icon);
contentView.setTextViewText(R.id.title_customNote, "Title");
contentView.setTextViewText(R.id.text_customNote, "Custom");
Intent notificationIntent = new Intent(this, MainActivity.class);
PendingIntent contentIntent = PendingIntent.getActivity(this, 0, notificationIntent, 0);
Uri defaultSoundUri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this)
.setPriority(Notification.PRIORITY_HIGH)
//.setContentTitle(title)
//.setStyle(new NotificationCompat.BigTextStyle().bigText(title))
//.setContentText(messageBody).setStyle(new NotificationCompat.BigTextStyle().bigText(messageBody))
.setAutoCancel(true)
.setSound(defaultSoundUri)
.setContentIntent(contentIntent)
.setContent(contentView)
.setColor(ContextCompat.getColor(this, R.color.colorPrimary))
//.setContentTitle(title).setContentText(messageBody)
.setSmallIcon(icon);
mNotificationManager.notify(new Random().nextInt(), notificationBuilder.build());
还更正了您的布局,如下所示(第二次文本视图)
<TextView android:id="@+id/text_customNote"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toRightOf="@id/image_customNote"
android:layout_below="@id/title_customNote"
style="Custom Notification Text" />