2 votes

Textview drawable n'affiche pas l'image du drawable dans une vue distante

J'essaie d'afficher la vue de texte dessinable dans une notification Android, mais le texte est affiché, mais le dessinable ne l'est pas. Je veux que l'image dessinable soit affichée en même temps que le message texte.

J'ai essayé d'ajuster le rembourrage. J'ai réglé le setCompoundDrawablesWithIntrinsicBounds pour une vue texte à l'intérieur d'une vue distante, mais je ne parviens pas à voir l'icône du dessinateur.

Mise en page

<RelativeLayout android:id="@+id/notification_carousel"
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"

    android:layout_width="match_parent"
    android:layout_height="wrap_content"

    android:paddingBottom="8dp"
    android:paddingTop="8dp">
    <TextView
        android:id="@+id/notification_action_error"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:paddingTop="8dp"
        android:textSize="16sp"
        android:gravity="bottom"
        android:textAlignment="gravity"
        android:textStyle="bold"
        android:drawableStart="@drawable/ic_error"
        android:layout_above="@+id/notification_action_list"
        android:layout_marginStart="16dp"
        android:visibility="visible"
        android:text="Error message to be displayed"
        android:layout_marginEnd="16dp" />

    <!--buttons-->
    <Button
        android:id="@+id/notification_action_list"
         android:layout_width="match_parent"
        android:layout_height="36dp"
        android:layout_alignParentBottom="true"
        android:layout_alignParentEnd="true"
        android:layout_alignParentStart="true"
        android:layout_alignWithParentIfMissing="true"
        android:layout_marginStart="16dp"
        android:layout_marginEnd="16dp" />

</RelativeLayout>

Disposition du code du widget de notification

Context context = ... // Initialize context
String channelId = ... // Initialise channel Id.
NotificationCompat.Builder builder = new NotificationCompat.Builder(context, channelId);

RemoteViews rootView = new RemoteViews(context.getPackageName(), R.layout.notificiation);
rootView.setViewVisibility(R.id.notification_action_error, View.VISIBLE);

rootView.setTextViewCompoundDrawables(R.id.notification_action_error, 0, 0, 0, 0);

Je veux voir l'image dessinée mais je ne la vois pas. Voici la capture d'écran de la notification qui contient la notification réelle et l'aperçu.

J'ai aussi essayé

rootView.setTextViewCompoundDrawables(R.id.notification_action_error, R.layout.ic_error, 0, 0, 0);

après avoir retiré le android:drawable de l'affichage du texte, mais j'obtiens la même valeur.

https://imgur.com/a/hmKZbp1

-1voto

Faisal Points 627

Sur le constructeur de notification, vous pouvez appeler ces méthodes pour afficher les icônes de notification.

NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this)
            .setLargeIcon(BitmapFactory.decodeResource(getResources(), R.drawable.app_icon))
            .setSmallIcon(R.drawable.app_icon)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X