NoneSet SeeMoreAction() срезов не работает во время тестирования с действиями приложения
Мне нужно показать больше данных, чем могли бы показать слайсы, поэтому я использовал метод setSeeMoreAction(PendingI ntent intent), который добавляет возможность "видеть больше" в конце слайса, и мы можем установить, какое действие вызывать при касании его с помощью PendingI ntent.
При тестировании моих слайсов в приложении для просмотра слайсов я вижу возможность "показать больше" и нажимаю на то, что работает, как и ожидалось, но когда я тестирую его с помощью "Инструмента тестирования действий приложения", он не показывает это "больше" affordance. Вместо этого иногда (хотя иногда ничего не отображается) он показывает нажатие кнопки "Открыть приложение", при котором не запускается ожидающее намерение, о котором я упоминал в setSeeMoreAction, вместо этого запускается SliceAction, упомянутое в setPrimaryAction() RowBuilder.
Вот мой код:
override fun onBindSlice(sliceUri: Uri): Slice? {
if(!isLoggedIn()) // if user is not logged in
{
return createLoginSlice(sliceUri).build()
}
var head = ListBuilder.HeaderBuilder()
.setTitle("Slice Title")
var slice = ListBuilder(context,sliceUri,ListBuilder.INFINITY)
.setSeeMoreAction(orderActivityPendingIntent())
.setHeader(head)
for(i in 0 .. 6) {
icon = IconCompat.createWithResource(context.applicationContext, R.drawable.placeholder)
var row = ListBuilder.RowBuilder()
.setTitleItem(icon!!,ListBuilder.LARGE_IMAGE,true)
.setTitle(orderName.get(i),true)
.setSubtitle(orderStatus.get(i),true)
.addEndItem(IconCompat.createWithResource(context, colorScheme.get(i)),ListBuilder.SMALL_IMAGE)
.setPrimaryAction(openOrderActivity(orderId.get(i)))
slice.addRow(row)
}
return slice.build()
}
@RequiresApi(Build.VERSION_CODES.KITKAT)
private fun openOrderActivity(orderNo: String?): SliceAction {
val intent = Intent(Intent.ACTION_VIEW,
Uri.parse(context.getString(R.string.orderURI)+orderNo))
return SliceAction.create(
PendingIntent.getActivity(context, 0, intent, 0),
IconCompat.createWithResource(context, R.drawable.abc_ic_star_black_36dp),
ListBuilder.ICON_IMAGE,
"Open Order Activity."
)
}
private fun orderActivityPendingIntent(): PendingIntent {
// create intent for order page here
val intent = Intent(Intent.ACTION_VIEW, Uri.parse(context.getString(R.string.orderPageURI)))
return PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT)
}
1 ответ
Согласно документации (хотя легко пропустить):
Если весь контент в срезе не может быть отображен, может быть отображена возможность "видеть больше", когда контент обрезается.
(ключ " май ").
По сути, это зависит от приложения, отображающего слайс (в данном случае Google Assistant), чтобы показать, что оно отображает возможность "видеть больше". В случае Assistant он может не отображаться, потому что он автоматически добавляет кнопку "Открыть приложение" к каждому отображаемому слайсу, поэтому вы должны использовать ее, чтобы связать пользователя с дополнительной информацией или предпринять дальнейшие действия.
Если вы считаете, что "увидеть больше" было бы полезно в вашем случае, вы можете подать запрос на добавление компонента "Действия приложения + фрагменты", чтобы поддержать его вместе с подробностями вашего использования.