为什么在行生成器中未使用 setPrimaryAction 时切片未在 sliceviewer apk 中呈现
Why does slice not rendered in sliceviewer apk when setPrimaryAction is not used in the row builder
当行生成器中未设置 setPrimaryAction 时,我无法在切片查看器应用程序中显示切片
list(context, sliceUri, ListBuilder.INFINITY)
{
header {
title ="News Content"
}
row {
title = "news genre"
subtitle = "first new headlines"
}
}
上面的代码片段没有在 sliceviewer 中显示切片
而如果我通过在其中一行中添加 primaryAction 来更改代码。切片正在渲染,但对于我的用例,我不想设置任何操作
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"
)
}
}
以上代码片段在 sliceviewer 中显示切片
我想明白为什么我们需要设置primaryAction。可能很少有我们不需要任何操作的用例
根据Android的官方文档,切片操作被认为是切片模板的最基本元素。
所以当我们不设置primary action时,会出现如下异常
java.lang.IllegalStateException:切片需要一个主要动作;确保您的构建器之一已使用有效的 SliceAction 调用了#setPrimaryAction。
切片的目的是通过启用全屏应用体验之外的参与来帮助用户更快地执行任务。由于它是用户交互的,我想这就是他们强制执行基本操作的原因。
当行生成器中未设置 setPrimaryAction 时,我无法在切片查看器应用程序中显示切片
list(context, sliceUri, ListBuilder.INFINITY)
{
header {
title ="News Content"
}
row {
title = "news genre"
subtitle = "first new headlines"
}
}
上面的代码片段没有在 sliceviewer 中显示切片
而如果我通过在其中一行中添加 primaryAction 来更改代码。切片正在渲染,但对于我的用例,我不想设置任何操作
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"
)
}
}
以上代码片段在 sliceviewer 中显示切片
我想明白为什么我们需要设置primaryAction。可能很少有我们不需要任何操作的用例
根据Android的官方文档,切片操作被认为是切片模板的最基本元素。
所以当我们不设置primary action时,会出现如下异常
java.lang.IllegalStateException:切片需要一个主要动作;确保您的构建器之一已使用有效的 SliceAction 调用了#setPrimaryAction。
切片的目的是通过启用全屏应用体验之外的参与来帮助用户更快地执行任务。由于它是用户交互的,我想这就是他们强制执行基本操作的原因。