Я не пробовал это, но он должен работать так же, как виджеты, используя RemoteViews.setOnClickPendingIntent. Один из способов отключить выделение выделения строки может заключаться в том, чтобы добавить Intent к внешнему элементу макета, а затем ничего не делать с ним.
Например, если ваш пользовательский макет выглядит так.
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/layout_root"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<ImageView android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:src="@drawable/button"/>
<TextView android:id="@+id/text"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:text="Some Text" />
</LinearLayout>
Добавить do_nothing намерения к layout_root,
RemoteViews contentView = new RemoteViews(getPackageName(), R.layout.yourlayout);
notification.contentView = contentView;
PendingIntent peClick = PendingIntent.getBroadcast(this, 0, new Intent("com.BUTTON_CLICK"), 0);
contentView.setOnClickPendingIntent(R.id.button, peClick);
PendingIntent peNothing = PendingIntent.getBroadcast(this, 0, new Intent("com.DO_NOTHING"), 0);
contentView.setOnClickPendingIntent(R.id.layout_root, peNothing);
BTW, HTC имеет возможность изменять андроид таким образом, что нормальный разработчик не может, так что это не всегда хорошо, чтобы использовать их материал как пример того, что возможно.
fyi- HoneyComb устанавливает разделение. С HoneyComb on они работают. – Falcon