Android 自定义通知设置高度自动展开
要实现 Android 自定义通知设置高度自动展开,可以使用以下步骤:
-
创建一个自定义的 Notification 布局,例如
notification_layout.xml。 -
在
notification_layout.xml中设置一个高度固定的根布局,例如LinearLayout,并在其中添加需要展示的内容。 -
创建一个继承自
NotificationCompat.Style的自定义样式类,例如CustomNotificationStyle。 -
在
CustomNotificationStyle中重写createContentView()方法,将notification_layout.xml作为ContentView返回。@Override public RemoteViews createContentView() { RemoteViews contentView = new RemoteViews(getPackageName(), R.layout.notification_layout); // 设置通知内容 contentView.setTextViewText(R.id.notification_title, 'Notification Title'); contentView.setTextViewText(R.id.notification_content, 'Notification Content'); return contentView; } -
在创建通知时,使用自定义样式类
CustomNotificationStyle。NotificationCompat.Builder builder = new NotificationCompat.Builder(context, channelId) .setSmallIcon(R.drawable.notification_icon) .setPriority(NotificationCompat.PRIORITY_HIGH) .setStyle(new CustomNotificationStyle()); -
在
AndroidManifest.xml中,为应用的NotificationChannel设置setImportance为IMPORTANCE_HIGH。<application ...> <meta-data android:name="com.google.firebase.messaging.default_notification_channel_id" android:value="@string/default_notification_channel_id"/> <activity .../> <service .../> <receiver .../> <service .../> <provider .../> <service .../> <service .../> <receiver .../> <receiver .../> <provider .../> <service .../> <service .../> <receiver .../> <receiver .../> <receiver .../> <provider .../> <receiver .../> <receiver .../> <receiver .../> <service .../> <service .../> <activity .../> <activity .../> <receiver .../> <activity .../> <activity .../> <receiver .../> <activity .../> <activity .../> <receiver .../> <service .../> <service .../> <activity .../> <receiver .../> <service .../> <receiver .../> <receiver .../> <service .../> <receiver .../> <service .../> <service .../> <receiver .../> <receiver .../> <activity .../> <activity .../> <receiver .../> <activity .../> <provider .../> <provider .../> <activity .../> <activity .../> <activity .../> <receiver .../> <activity .../> <activity .../> <receiver .../> <activity .../> <activity .../> <receiver .../> <service .../> <activity .../> <activity .../> <receiver .../> <activity .../> <service .../> <service .../> <receiver .../> <receiver .../> <!-- 设置通知渠道重要性为高 --> <meta-data android:name="com.google.firebase.messaging.default_notification_channel_importance" android:value="high"/> </application> -
运行应用,显示通知时,通知应该会自动展开到设置的固定高度。
请注意,自定义通知样式只适用于 Android 4.1(API 级别 16)及更高版本。在较旧的 Android 版本上,通知可能无法自动展开。
原文地址: https://www.cveoy.top/t/topic/ql48 著作权归作者所有。请勿转载和采集!