Я создал собственный макет, который я использую RemoteView для применения макета к моему уведомлению. Все работает нормально.Нормальное уведомление применяется RemoteView, но BigPictureStyle не
Затем я также хотел реализовать BigPictureStyle для моего уведомления, поэтому, когда пользователь расширяет уведомление или когда оно является первым, уведомление становится больше и может отображать больше информации/больше значков.
Проблема заключается в следующем: когда уведомление расширяется, я не вижу кнопок, которые у меня есть на моем собственном макете (который показывает, когда он сжимается).
Мой вопрос: как мое расширенное уведомление имеет одинаковые кнопки?
Вот код, я использую, чтобы настроить свои уведомления:
Target mTarget;
String url = mMyTracks.get(mCurrentTrack).getCoverImgs();
Intent notificationIntent;
notificationIntent = new Intent(getApplicationContext(), TopTracksActivity.class);
notificationIntent.putParcelableArrayListExtra(MediaPlayerDialogFragment.TRACKS, mMyTracks);
notificationIntent.putExtra(MediaPlayerDialogFragment.TRACK_NUMBER, mCurrentTrack);
PendingIntent notificationPendingIntent =
PendingIntent.getActivity(getApplicationContext(), 0, notificationIntent, PendingIntent.FLAG_UPDATE_CURRENT);
RemoteViews remoteView = new RemoteViews(getPackageName(), R.layout.notification);
remoteView.setTextViewText(R.id.textSongName, track.getName());
remoteView.setTextViewText(R.id.textArtistName, track.getArtist());
// Create base notification
NotificationCompat.Builder builder =
new NotificationCompat.Builder(getApplicationContext())
.setSmallIcon(R.mipmap.ic_launcher)
.setContent(remoteView)
.setContentIntent(notificationPendingIntent);
//BigPicture notification style
final NotificationCompat.BigPictureStyle bigPictureStyle = new NotificationCompat.BigPictureStyle();
bigPictureStyle.setBigContentTitle(track.getName());
bigPictureStyle.setSummaryText(track.getArtist());
mTarget = new Target() {
@Override
public void onBitmapLoaded(Bitmap bitmap, Picasso.LoadedFrom from) {
bigPictureStyle.bigPicture(bitmap);
}
@Override
public void onBitmapFailed(Drawable errorDrawable) {}
@Override
public void onPrepareLoad(Drawable placeHolderDrawable) {}
};
Picasso.with(getApplicationContext())
.load(url)
.into(mTarget);
// Build the notification
builder.setStyle(bigPictureStyle);
Notification notification = builder.build();
// Get current track's image
Picasso.with(getApplicationContext())
.load(url)
.into(remoteView, R.id.imageViewAlbumArt, 2503, notification);
startForeground(2503, notification);
Спасибо! =]
Может быть, вы хотите этого? http://stackoverflow.com/a/13340548/706833 надеюсь, что это поможет;) – iGoDa