0

当 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。可能很少有我们不需要任何操作的用例

4

1 回答 1

0

根据 Android 的官方文档,切片动作被认为是切片模板的最基本元素。

所以当我们不设置primary action时,会出现如下异常

java.lang.IllegalStateException:切片需要主要操作;确保您的一位构建者使用有效的 SliceAction 调用了#setPrimaryAction。

切片的目的是通过启用全屏应用体验之外的参与来帮助用户更快地执行任务。由于它是用户交互的,我想这就是他们强制执行基本操作的原因。

于 2019-07-21T08:51:49.207 回答