首页 > 解决方案 > android 7上的通知问题

问题描述

我对飞利浦 s318 android 7 的通知有疑问

我显示了一条自定义消息,它在所有设备上都可以正常工作,但由于某种原因,它会拉伸并破坏标记。我不明白可能是什么原因。也许原因是android 7中消息的系统高度,或者整点是我正在使用RelativeLayout

以及它在其他设备上的正确外观

在此处输入图像描述

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="56dp">

    <ImageView
        android:id="@+id/ivAlert"
        android:layout_width="48dp"
        android:layout_height="48dp"
        android:layout_alignParentStart="true"
        android:layout_alignParentTop="true"
        android:layout_alignParentBottom="true"
        android:layout_gravity="center"
        android:layout_marginStart="4dp"
        android:layout_marginTop="4dp"
        android:layout_marginBottom="4dp"
        tools:srcCompat="@drawable/ic_notification_ram_alert" />

    <TextView
        android:id="@+id/tvTitle"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignTop="@id/ivAlert"
        android:layout_gravity="center"
        android:layout_marginStart="12dp"
        android:layout_marginEnd="12dp"
        android:layout_toStartOf="@id/btnRemove"
        android:layout_toEndOf="@id/ivAlert"
        android:ellipsize="end"
        android:fontFamily="sans-serif-medium"
        android:maxLines="1"
        android:textColor="#4E4F5A"
        android:textSize="12dp"
        tools:text="@string/notification_junk_description" />

    <TextView
        android:id="@+id/tvSubtitle"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@id/tvTitle"
        android:layout_gravity="center"
        android:layout_marginStart="12dp"
        android:layout_marginTop="2dp"
        android:layout_marginEnd="12dp"
        android:layout_marginBottom="5dp"
        android:layout_toStartOf="@id/btnRemove"
        android:layout_toEndOf="@id/ivAlert"
        android:ellipsize="end"
        android:fontFamily="sans-serif"
        android:maxLines="2"
        android:textColor="#4E4F5A"
        android:textSize="10dp"
        tools:text="@string/notification_junk_description" />

    <Button
        android:id="@+id/btnRemove"
        android:layout_width="86dp"
        android:layout_height="40dp"
        android:layout_alignParentTop="true"
        android:layout_alignParentEnd="true"
        android:layout_alignParentBottom="true"
        android:layout_gravity="center"
        android:layout_margin="7dp"
        android:layout_marginTop="8dp"
        android:layout_marginEnd="8dp"
        android:layout_marginBottom="8dp"
        android:background="@drawable/btn_rounded_green"
        android:text="@string/notification_remove"
        android:textAllCaps="false"
        android:textColor="@android:color/white"
        android:textSize="12dp"
        android:textStyle="bold" />
</RelativeLayout>

显示方法

        NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(this, notification_alarm_channel2);
        if (AFApplication.getInstance().getFirebaseRemoteConfig().getBoolean("new_push_time")) {
            mBuilder.setSmallIcon(bigIcon);
        } else {
            mBuilder.setSmallIcon(R.drawable.ic_notification_alert);
        }
        mBuilder.setContentTitle(title);
        mBuilder.setContentText(message);
        mBuilder.setAutoCancel(true);
        mBuilder.setVisibility(NotificationCompat.VISIBILITY_PUBLIC);
        mBuilder.setPriority(NotificationCompat.PRIORITY_MAX);
        mBuilder.setDefaults(Notification.DEFAULT_ALL);

        RemoteViews remoteViews = new RemoteViews(getPackageName(), R.layout.notification_push);
        remoteViews.setTextViewText(R.id.tvTitle, title);
        remoteViews.setTextViewText(R.id.tvSubtitle, message);
        remoteViews.setImageViewResource(R.id.ivAlert, bigIcon);
        mBuilder.setCustomContentView(remoteViews);

标签: androidandroid-notifications

解决方案


为您的 RelativeLayout 使用 android:layout_height="wrap_content"。


推荐阅读