Я использую настраиваемое уведомление для моего уведомления. Ниже приведен код для уведомления,
RemoteViews collapseView = new RemoteViews(getPackageName(), R.layout.notification_layout);
collapseView.setImageViewResource(R.id.notifiction_icon,R.drawable.notify);
collapseView.setTextViewText(R.id.notification_title, "Custom notification");
collapseView.setTextViewText(R.id.notification_message, "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa bbbbbbbbbbbbbbbbbbbbbbbbbbb ccccccccccccccc dddddddddddddd eeeeeeeeeeeeeeeeeeeeee ffffffffffffffffffff");
RemoteViews expandView=new RemoteViews(getPackageName(),R.layout.notification_expandable);
expandView.setImageViewResource(R.id.notification_icon_expand,R.drawable.notify);
expandView.setTextViewText(R.id.notification_title, "Custom notification");
expandView.setTextViewText(R.id.notification_message, "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa bbbbbbbbbbbbbbbbbbbbbbbbbbb ccccccccccccccc dddddddddddddd eeeeeeeeeeeeeeeeeeeeee ffffffffffffffffffff");
int m = (int) ((new Date().getTime() / 1000L) % Integer.MAX_VALUE);
Log.d(TAG, "onStartCommand: Notification channel created");
Intent intent=new Intent(this,Activity.class);
PendingIntent pendingIntent=PendingIntent.getActivity(this,0,intent,0);
NotificationCompat.Builder notification = new NotificationCompat.Builder(this, channelId)
.setContent(collapseView)
.setContentIntent(pendingIntent)
.setCustomContentView(collapseView)
.setSmallIcon(R.drawable.notify)
.setDefaults(Notification.DEFAULT_ALL)
.setCustomBigContentView(expandView)
.setSound(Settings.System.DEFAULT_NOTIFICATION_URI)
.setAutoCancel(true)
.setPriority(NotificationCompat.PRIORITY_HIGH);
manager.notify(m, notification.build());
Ниже мой макет свертывания,
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">
<RelativeLayout
android:layout_width="match_parent"
android:layout_centerInParent="true"
android:layout_height="match_parent">
<ImageView
android:id="@+id/notifiction_icon"
android:layout_width="20dp"
android:layout_height="20dp"
android:layout_alignParentLeft="true"
android:layout_marginLeft="10dp"
/>
<TextView
android:id="@+id/notification_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="@style/TextAppearance.Compat.Notification.Title"
android:layout_toRightOf="@id/notifiction_icon"
android:layout_marginLeft="8dp"/>
<TextView
android:id="@+id/notification_message"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="8dp"
android:maxLines="2"
android:textAppearance="@style/TextAppearance.Compat.Notification"
android:layout_toRightOf="@id/notifiction_icon"
android:layout_below="@id/notification_title"/>
</RelativeLayout>
</RelativeLayout>
ниже мой развернутый макет,
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
android:layout_width="20dp"
android:layout_height="20dp"
android:layout_marginLeft="10dp"
android:layout_alignParentLeft="true"
android:id="@+id/notification_icon_expand"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="8dp"
android:textAppearance="@style/TextAppearance.Compat.Notification.Title"
android:layout_toRightOf="@id/notification_icon_expand"
android:id="@+id/notification_title"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="8dp"
android:layout_toRightOf="@id/notification_icon_expand"
android:textAppearance="@style/TextAppearance.Compat.Notification"
android:id="@+id/notification_message"
android:layout_below="@id/notification_title"/>
</RelativeLayout>
Я читал о здесь настраиваемое уведомление https://developer.android.com/training/notify-user/custom-notification Здесь упоминалось предостережение для настраиваемого уведомления, хотя я использовал полностью настраиваемое уведомление. Потому что я не хочу, чтобы мой маленький значок был виден, поскольку он имеет серый цвет. Вот мой предыдущий вопрос по этому поводу. Установка маленького значка в уведомлении над версией леденца на палочке В итоге я использую полностью созданное настраиваемое уведомление.
Когда я тестировал это уведомление на своих устройствах, я обнаружил проблему .
a) Если Уведомление содержит одну строку, то внизу есть лишнее пространство. б) Если уведомление содержит несколько строк, то внизу нет места, что выглядит плохо.
Как выровнять мое уведомление по центру? Так что у него есть приличное пространство вверху и внизу уведомления.
ниже мой скриншот для этого,
3)In regular notification, if notification contains long text, then to denote users about that there are some dots in end of the text. For example like (aaaaaaa bbbbbbb ccccccc...) in collapse view How to achieve that in Custom notification??
- Когда расширение уведомления и возврат к свернутому уведомлению вместо получения двух строк (поскольку я установил максимальное количество строк равным 2), текст моего уведомления обрывается. Я знаю, что высота свернутого уведомления составляет 64 dp, а высота развернутого - 256 dp. Всего на двух строках обрезка текста. Интересно, почему?
введите описание изображения здесь
Я не нашел решения для этих проблем. Заранее спасибо .. Любая помощь будет принята с благодарностью.
Также, если требуются какие-либо другие разъяснения, чтобы ответить на эти вопросы, пожалуйста, задавайте мне.