I'm trying to create some custom notifications for my app.
Usually collapsed view layouts are limited to 64 dp, and expanded view layouts are limited to 256 dp.
Although I considered these restrictions, it seems that the notification is cut off on several phones as you can see in the screenshots below. I did some research on that because I thought there are also restrictions depending on different manufacturers or UIs, but couldn't find anything.
That's how it is implemented:
// 64dp is set for height
val collapsedView = RemoteViews(packageName, R.layout.custom_notification_collapsed)
// 256dp is set for height
val expandedView = RemoteViews(packageName, R.layout.custom_notification_expanded)
val customNotification: Notification = NotificationCompat.Builder(this, "default")
.setSmallIcon(R.drawable.ic_launcher_background)
.addAction(R.drawable.ic_map, "Personal", PendingIntent.getService(this, 0, personalIntent, PendingIntent.FLAG_UPDATE_CURRENT))
.addAction(R.drawable.ic_map, "Business", PendingIntent.getService(this, 0, businessIntent, PendingIntent.FLAG_UPDATE_CURRENT))
.addAction(R.drawable.ic_map, "Work", PendingIntent.getService(this, 0, businessIntent, PendingIntent.FLAG_UPDATE_CURRENT))
.setColor(Color.parseColor("#00D8FF"))
.setStyle(NotificationCompat.DecoratedCustomViewStyle())
.setCustomContentView(collapsedView)
.setCustomBigContentView(expandedView)
.build()
notificationManager.notify(4, customNotification)
Here's the result:
Xiaomi Mi Mix2
Samsung Galaxy Note 8
Now the questions are: Did I fail the implementation somehow? If not, is there a way to figure out the max. notification height for a current phone programmatically?
Notification (your RemoteView) that you see is created by another process and only that process can know the size
There is no official way to get the max height for custom notification. I think the only way you can do is to reduce the text size
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With