2016-07-28 70 views
3

Ich bin benutzerdefinierte Inhalt in meine Benachrichtigung mit 'BigContentView', setzen Sie es auf die gleiche remoteViews als das, was ich bereits für ein Widget auf dem Homescreen eingerichtet haben. Das Problem, das ich habe, ist, dass die Höhe des Benachrichtigungsinhaltes konstant zu bleiben scheint und nicht schrumpft, um den Inhalt anzupassen.Android: Abstand um bigContentView in Benachrichtigung

Als Beispiel, wenn ich das Widget, der neue Widget Inhalt wird in der Meldung gesetzt, aber es ist immer die gleiche Höhe (mit den Lücken in Weiß gefüllt) die Größe:

enter image description here

Die ein entsprechender Code ist wie folgt:

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); 

Und die remoteViews basiert auf dem folgenden Aufbau:

<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> 

(Es gibt einige andere Inhalte im Layout, aber das obige ist das grundlegende Layout, und ich glaube nicht, der Rest wird einen materiellen Effekt haben ... sicherlich funktioniert das Layout als AppWidget Kontext.)

EDIT: die Imageview aktualisiert mit:

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

Am tatsächlich Einpassen des remoteViews Inhalt ich etwas offensichtlich falsch zu verhindern, dass die Meldung zu tun?

+0

Und könnten Sie zeigen, wo und wie setzen Sie das 'ImageVIew' Bild? – rom4ek

+0

@ rom4ek Ich habe die Frage mit dieser Information aktualisiert – drmrbrewer

+0

Haben Sie versucht 'RelativeLayout' und' ImageView' mit 'wrap_content' Höhe? – sohailehmad

Antwort

1

Es scheint Android die Höhe der Benachrichtigung vorbehalten! Obwohl die Höhe des Big Notification Style ebenfalls reserviert ist! Sie müssen Ihre Benachrichtigung entsprechend dieser Größe erstellen.

Auch das Aspektverhältnis Ihres Bildes innerhalb der Benachrichtigung nach android nativer Benachrichtigung Sache. Viel Glück :)

+0

Woher kommen Sie? – drmrbrewer

0

Ich denke, android:padding="@dimen/widget_margin" in Ihrem RelativeLayout verursacht das Problem.

Versuchen Sie es nach dem Entfernen dieser Zeile.

und eine andere Sache, die dieses Problem verursachen können, ist Ihre ImageView wenn oben nicht für Sie arbeiten können Sie versuchen, die folgenden

<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> 

Hoffe, dass es

0

Wie pro Ihre Frage hilft, überprüfen Sie bitte, die Breite Ihres RemoteView! Möglicherweise sind die Breite und die Höhe nicht einstellbar. Ich habe ein Bild der Größe 1920x1080 gemacht, also habe ich die gleiche Ausgabe wie deine. Also bitte bestätigen Sie es zuerst. Ich habe Ihren Code verwendet und er funktioniert genau mit einem Bild in der richtigen Größe.

Bitte überprüfen Sie diesen Link: Expandable Notifications for Android

Dank

+0

Was meinst du mit einem "richtig großen Bild"? Eins mit einer ganz bestimmten Größe oder einem Seitenverhältnis, das mit dem der Benachrichtigung übereinstimmt, so dass es keine Lücke gibt?Sie können den Infobereich nicht so verkleinern, dass er in das Bild passt. Vielleicht stimmt eine der Antworten, dass die Höhe der Benachrichtigung von Android reserviert ist? Ich kann einfach keinen Hinweis darauf finden, dass dies der Fall ist. – drmrbrewer

+0

Ich meine zu sagen, dass das Aspektverhältnis für die normale oder erweiterte Benachrichtigungsinhaltsansicht von Bedeutung ist. Bitte beachten Sie das Seitenverhältnis bitte unter [link] (https://material.google.com/patterns/notifications.html#notifications-content). –