Нажатие на фон RemoteView непредвиденного поведения
Я хочу, чтобы мой виджет отображал список с нажимаемой кнопкой и кликабельным фоном на элементе ListItem, который содержит кнопку. Я создал сервис, который различает различные события, но щелчок по фону никогда не регистрируется, если onClickFillIntent
устанавливается на кнопку.
(Я уже пытался установить несколько onClickFillIntents
на другие вещи, как TextView
и кнопка, это работает без нареканий. Все кроме фона работает.)
TLDR; Почему intent1
работать, но intent2
оленья кожа? В logcat нет ошибок.
widget.kt
class Widget() : AppWidgetProvider() {
override fun onUpdate(context: Context, appWidgetManager: AppWidgetManager, Ids: IntArray) {
for (i in Ids.indices) {
val views = RemoteViews(context.getPackageName(), R.layout.classificationwidget)
views.setRemoteAdapter(R.id.widget_list, context.intentFor<WidgetService>())
views.setPendingIntentTemplate(R.id.widget_list, PendingIntent.getService(context,0,context.intentFor<DataCollectorService>("someAction"), PendingIntent.FLAG_CANCEL_CURRENT))
appWidgetManager.updateAppWidget(Ids[i], views)
}
}
}
class WidgetService : RemoteViewsService() {
override fun onGetViewFactory(intent: Intent): RemoteViewsFactory {
return WidgetViews(this.applicationContext)
}
}
class WidgetViews(private val context: Context) : RemoteViewsService.RemoteViewsFactory {
override fun getViewAt(position: Int): RemoteViews? {
val views = RemoteViews(context.packageName, R.layout.widgetlistitem)
val intent1 = context.intentFor<MyService>(ACTION to "1")
views.setOnClickFillInIntent(R.id.widget_button, intent1)
val intent2 = context.intentFor<MyService>(ACTION to "2")
views.setOnClickFillInIntent(R.id.widget_item_background, intent2)
return views
}
... (rest of the methods)
}
widgetlistitem.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/widget_item_background"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="2dp"
android:background="@drawable/card"
android:clickable="true"
android:focusable="true">
<Button
android:id="@+id/widget_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_alignParentTop="true"
android:layout_margin="8dp"
android:text="Jetzt" />
</RelativeLayout>
widget_list.xml
<?xml version="1.0" encoding="utf-8"?>
<ListView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/widget_list"
android:layout_width="match_parent"
android:layout_height="wrap_content"
tools:listitem="@layout/widgetlistitem">
</ListView>