0

所以我正在尝试构建一个在右侧有一些文本和两个按钮的通知(不像 gmail/whatsapp 通知那样在底部)。我创建了相同的布局,但是当我在通知上设置远程视图时,它只显示标题文本视图和两个按钮。它不会在标题下方显示图像视图或文本视图。此外,我指定的边距也不会被应用。我正在粘贴 xml 以及下面的代码:

custom_notification.xml

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

<ImageView
    android:id="@+id/img_logo"
    android:layout_width="36dp"
    android:layout_height="36dp"
    android:layout_margin="10dp"
    android:scaleType="centerCrop"
    android:src="@drawable/ic_launcher"/>

<TextView
    android:id="@+id/txt_title"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_toEndOf="@+id/img_logo"
    android:layout_alignTop="@+id/img_logo"
    android:text="Would you like to connect with this person?"
    style="@style/NotificationTitle"
    android:textColor="@android:color/darker_gray" />

<TextView
    android:id="@+id/txt_contact_name"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignLeft="@id/txt_title"
    android:layout_below="@id/txt_title"
    android:text="Lord Voldemort"
    style="@style/NotificationText"
    android:textColor="@android:color/black"
    android:textStyle="bold"/>

<ImageButton
    android:id="@+id/img_btn_reject_suggestion"
    android:layout_width="36dp"
    android:layout_height="36dp"
    android:scaleType="centerCrop"
    android:layout_alignTop="@+id/img_logo"
    android:src="@drawable/ic_reject_suggestion"
    android:background="@android:color/transparent"
    android:layout_toStartOf="@+id/img_btn_accept_suggestion"
    android:layout_marginRight="10dp"
    android:layout_centerVertical="true"/>

<ImageButton
    android:id="@+id/img_btn_accept_suggestion"
    android:layout_width="36dp"
    android:layout_height="36dp"
    android:layout_alignTop="@+id/img_logo"
    android:layout_marginRight="10dp"
    android:scaleType="centerCrop"
    android:src="@drawable/ic_accept_suggestion"
    android:background="@android:color/transparent"
    android:layout_alignParentRight="true"
    android:layout_centerVertical="true"/>

    </RelativeLayout>

这是创建通知的方法:

NotificationManager mNotificationManager = (NotificationManager) context.getSystemService(context.NOTIFICATION_SERVICE);

    Notification.Builder mNotificationBuilder = new Notification.Builder(context);
    RemoteViews contentView = new RemoteViews(context.getPackageName(), R.layout.custom_notification);

    mNotificationBuilder.setSmallIcon(R.drawable.ic_small_notification)
            .setDefaults(Notification.DEFAULT_ALL)
            .setContent(contentView)
            .setAutoCancel(true);


    Notification notification = mNotificationBuilder.build();

    mNotificationManager.notify(MANUAL_NOTIFICATION_ID, notification);

我做了很多挖掘工作,但无法弄清楚为什么这不起作用。如果需要更多信息,请告诉我。:)

4

1 回答 1

0

原来这是 android studio 的即时运行,它不会反映我出于某种原因在代码中所做的更改。碰巧将我的手机与笔记本电脑断开连接......然后当我从工作室再次运行该应用程序时,它就像一个魅力:)

于 2016-06-21T10:57:54.123 回答