带有按钮的 android 的自定义通知
Custom notification for android with buttons
所以我正在尝试构建一个通知,它在右侧有一些文本和两个按钮(不像 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);
我做了很多挖掘工作,但无法弄清楚为什么这不起作用。如果需要更多信息,请告诉我。 :)
事实证明这是 android 工作室的即时 运行,它不会反映出于某种原因我在代码中所做的更改。碰巧断开了我的 phone 与笔记本电脑的连接...然后当我再次从工作室 运行 应用程序时,它就像一个魅力:)
所以我正在尝试构建一个通知,它在右侧有一些文本和两个按钮(不像 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);
我做了很多挖掘工作,但无法弄清楚为什么这不起作用。如果需要更多信息,请告诉我。 :)
事实证明这是 android 工作室的即时 运行,它不会反映出于某种原因我在代码中所做的更改。碰巧断开了我的 phone 与笔记本电脑的连接...然后当我再次从工作室 运行 应用程序时,它就像一个魅力:)