Почему срез не отображается в apk sliceviewer, когда setPrimaryAction не используется в конструкторе строк
Я не могу отобразить срез в приложении для просмотра срезов, когда setPrimaryAction не задано в конструкторе строк
list(context, sliceUri, ListBuilder.INFINITY)
{
header {
title ="News Content"
}
row {
title = "news genre"
subtitle = "first new headlines"
}
}
Приведенный выше фрагмент не отображает слайс в программе просмотра слайсов.
тогда как, если я изменю код, добавив primaryAction в одну из строк. Slice рендерится, но для моего сценария я не хочу устанавливать какие-либо действия
list(context, sliceUri, ListBuilder.INFINITY)
{
header {
title ="News Content"
}
row {
title = "news genre"
subtitle = "first new headlines"
setPrimaryAction = SliceAction.create(
PendingIntent.getActivity(
context, 0, Intent(context, MyActivityClass::class.java), 0
),
IconCompat.createWithResource(context,
R.drawable.ic_launcher_foreground),
ListBuilder.ICON_IMAGE,
"Open App"
)
}
}
Приведенный выше фрагмент отображает фрагмент в режиме просмотра слайсов.
Я хотел бы понять, почему мы должны установить primaryAction. Там может быть несколько случаев, когда нам не нужно никаких действий
1 ответ
Согласно официальной документации Android, действия Slice считаются самым основным элементом шаблона Slice.
Поэтому, когда мы не устанавливаем основное действие, возникает следующее исключение
java.lang.IllegalStateException: срез требует основного действия; убедитесь, что один из ваших сборщиков вызвал #setPrimaryAction с допустимым SliceAction.
Назначение секций - помочь пользователям быстрее выполнять задачи, обеспечивая взаимодействие вне полноэкранного режима приложения. Так как это интерактивный пользователь, я полагаю, что именно поэтому он потребовал базового действия.