2016-07-28 5 views
3

Je place un contenu personnalisé dans ma notification en utilisant 'bigContentView', en le réglant sur le même remoteViews que celui que j'ai déjà établi pour un widget sur l'écran d'accueil. Le problème que j'ai est que la hauteur du contenu de la notification semble rester constante, et ne rétrécit pas pour s'adapter au contenu.Android: espacement autour de bigContentView dans la notification

À titre d'exemple, quand je redimensionne le widget, le nouveau contenu widget est placé dans la notification, mais il est toujours la même hauteur (avec les espaces remplis en blanc):

enter image description here

Le code correspondant est le suivant:

Notification notification = new NotificationCompat.Builder(context) 
     .setContentTitle(placeName) 
     .setContentText(contentText) 
     .setSmallIcon(drawableId) 
     .setOngoing(false) 
     .setPriority(Notification.PRIORITY_MIN) 
     .setVisibility(Notification.VISIBILITY_PUBLIC) 
     .build(); 
notification.bigContentView = remoteViews; 
notificationManager.notify(0, appWidgetId, notification); 

Et les remoteViews est basé sur la mise en page suivante:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:padding="@dimen/widget_margin" 
    android:id="@+id/widget" > 

    <ImageView 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:id="@+id/imageView_port" 
     android:layout_alignParentTop="true" 
     android:layout_alignParentLeft="true" /> 

</RelativeLayout> 

(Il y a un autre contenu dans la mise en page, mais ce qui précède est la disposition de base, et je ne pense pas que le reste aura un effet matériel ... certainement la mise en page fonctionne comme un AppWidget.)

EDIT: le imageview est mis à jour avec:

remoteViews.setImageViewUri(imageViewId, uri); 
appWidgetManager.updateAppWidget(appWidgetId, remoteViews); 

Suis-je faire quoi que ce soit évidemment faux pour empêcher la notification montage en fait le contenu remoteViews?

+0

Pourriez-vous montrer où et comment définissez-vous l'image 'de ImageVIew'? – rom4ek

+0

@ rom4ek J'ai mis à jour la question avec cette information – drmrbrewer

+0

Avez-vous essayé 'RelativeLayout' et' ImageView' avec la hauteur 'wrap_content'? – sohailehmad

Répondre

1

Il semble Android réservé la hauteur de notification! Bien que la hauteur du style Big Notification soit également réservée! Vous devez créer votre notification en fonction de ces tailles.

Aussi la ration d'aspect de votre image dans la notification selon la chose de notification native android. Bonne chance :)

+0

Quelle est votre source pour cela? – drmrbrewer

0

Je pense que android:padding="@dimen/widget_margin" dans votre RelativeLayout est à l'origine du problème.

Essayez-le après avoir supprimé cette ligne.

et une autre chose qui peut provoquer ce problème est votre ImageView si ci-dessus ne fonctionne pas pour vous, vous pouvez essayer ce qui suit

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:id="@+id/widget" > 

    <ImageView 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:adjustViewBounds="true" 
     android:id="@+id/imageView_port" 
     android:layout_alignParentTop="true" 
     android:layout_alignParentLeft="true" /> 

</RelativeLayout> 

Hope it helps

0

Selon votre question, s'il vous plaît vérifier la largeur de votre RemoteView! Peut être la largeur et la hauteur ne sont pas en mesure de définir respectivement. J'ai pris l'image de la taille 1920x1080 donc j'ai eu la même sortie que la vôtre. Alors s'il vous plaît confirmez-le d'abord. J'ai utilisé votre code et cela fonctionne finement avec une image de taille appropriée.

S'il vous plaît vérifier ce lien: Expandable Notifications for Android

Merci

+0

Que voulez-vous dire par "une image de taille appropriée"? Un avec une taille très particulière, ou un ratio d'aspect, pour correspondre à celui de la notification, de sorte qu'il n'y a pas d'écart?Vous ne pouvez pas réduire la zone de notification pour qu'elle corresponde à l'image? Peut-être que l'une des réponses est juste, que la hauteur de la notification est réservée par Android? Je ne vois simplement aucune référence à cela étant le cas. – drmrbrewer

+0

Je veux dire que la ration d'aspect est importante pour la vue de contenu de notification normale ou étendue. S'il vous plaît être maintenu sur le ratio d'aspect s'il vous plaît se référer à ce [lien] (https://material.google.com/patterns/notifications.html#notifications-content). –