2016-07-28 8 views
3

私の通知に「bigContentView」を使用してカスタムコンテンツを配置しています。ホーム画面のウィジェット用に既に設定したものと同じremoteViewsに設定しています。私が抱えている問題は、通知コンテンツの高さが一定のままで、コンテンツに合わせて縮小しないということです。私は、ウィジェットのサイズを変更する場合の例としてAndroid:通知内のbigContentView周りのスペース

は、新しいウィジェットのコンテンツは、通知に配置され、それは常に(白に充填されたギャップを有する)同じ高さである。

enter image description here

関連するコードは次のとおりです。

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

をそしてremoteViewsは、以下のレイアウトに基づいています。

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

(レイアウトには他にもいくつかのコンテンツがありますが、上記のレイアウトは基本的なものですが、残りは重要な効果はないと確信しています...)

EDIT:ImageViewのがで更新されます。

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

私は実際にremoteViewsコンテンツをフィッティング通知を防ぐために、明らかに間違って何をやっていますか?

+0

そして、どこで、どのようにあなたが 'ImageVIew'の画像を設定するか、あなたは示すことができましたか? – rom4ek

+0

@ rom4ekこの情報で質問を更新しました – drmrbrewer

+0

'wrap_content'の高さで' RelativeLayout'と 'ImageView'を試しましたか? – sohailehmad

答えて

1

Androidが通知の高さを予約したようです!大きな通知スタイルの高さも予約されていますが!これらのサイズに従って通知を作成する必要があります。

また、アンドロネイティブの通知事項による通知内部の画像のアスペクト比。幸運:)

+0

これはあなたのソースですか? – drmrbrewer

0

あなたのRelativeLayoutandroid:padding="@dimen/widget_margin"が問題の原因だと思います。

この行を削除してからお試しください。

、あなたのために動作しませんImageView以上であれば、この問題は、あなたの次の

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

を確認してください、それはあなたの質問を1として

0

を役に立てば幸い試すことができますされて引き起こす可能性があります一つの他の事あなたのRemoteViewの幅!幅と高さをそれぞれ設定することはできません。私は1920x1080のサイズの画像を撮影しましたので、あなたと同じ出力を得ました。だから最初に確認してください。私はあなたのコードを使用し、適切なサイズの画像で細かく動作します。

このリンクを確認してください:Expandable Notifications for Android

おかげ

+0

「適切なサイズの画像」とはどういう意味ですか? 1つの非常に特定のサイズやアスペクト比、通知のそれと一致するように、ギャップがないように?画像に合わせて通知領域を縮小することはできませんか?おそらく答えの1つは正しいです、通知の高さはAndroidによって予約されていますか?私はちょうどそうであることへの参照を見ることができません。 – drmrbrewer

+0

アスペクト比は、ノーマルまたは拡張のいずれかの通知コンテンツビューで重要です。アスペクト比については、この[リンク](https://material.google.com/patterns/notifications.html#notifications-content)を参照してください。 –