Подтвердить что ты не робот

Пользовательские расширяемые уведомления в желе Bean (4.1)

Jelly Bean добавлена ​​поддержка расширяемого уведомления о состоянии. Согласно http://developer.android.com/about/versions/jelly-bean.html:

В дополнение к шаблонным стилям вы можете создавать свои собственные стилей уведомлений с использованием любого удаленного представления.

Как это сделать? Я считаю, что для этого вам нужно создать пользовательский Notification.Style. Это абстрактный класс, поэтому мне нужно его расширить. Мне не удалось найти какую-либо документацию, по которой детали необходимо расширить.

Этот вопрос qaru.site/info/58195/... дает хороший пример того, как использовать notificaiton.builder для базовых уведомлений, я использую это как отправную точку. Добавление

.setContent(new RemoteViews(getPackageName(), R.layout.notification)) 

добавляет настраиваемый вид для основных уведомлений, но не расширяется.

4b9b3361

Ответ 1

Вам нужно создать свой собственный RemoteViews, а затем указать, что вы хотите, чтобы расширенный контент наследовал ваш пользовательский RemoteViews.

 RemoteViews expandedView = new RemoteViews(YOUR CONTEXT.getPackageName(), YOUR CUSTOM LAYOUT);
 Notification notification = mBuilder.build();
 notification.bigContentView = expandedView;

Обратите внимание, что bigContentView - это то, что вы ищете. mBuilder является Notification.Builder объектом.

Ответ 2

Там хороший учебник здесь о том, как это сделать и как создать свой собственный макет тоже.

enter image description here

В основном вам нужно создать remoteView с вашим макетом, а затем установить его как bigContentView в объекте уведомления. Btw убедитесь, что вы также добавили reguler contentView, потому что в некоторых случаях ОС будет использовать меньший contentView.