如何在 ItemList.Builder (Android- Auto) 中添加超过 6 个项目?

Posted

技术标签:

【中文标题】如何在 ItemList.Builder (Android- Auto) 中添加超过 6 个项目?【英文标题】:How to add more than 6 items in ItemList.Builder (Android- Auto)? 【发布时间】:2021-01-11 12:11:07 【问题描述】:

我正在尝试开发与汽车 https://developer.android.com/training/cars 兼容的应用程序。我 fork 官方 GitHub 示例并成功运行了应用程序https://github.com/android/car-samples/blob/main/car_app_library/showcase/src/main/java/androidx/car/app/samples/showcase/templates/ListTemplateDemoScreen.java。 但问题是可以在 ListItemTemplate 中显示 6 个项目没有任何问题,但我需要显示超过 15 个项目。因此,如果我添加超过 6 行,我就会遇到异常。

我试过了:

ItemList.Builder listBuilder = ItemList.builder();

    listBuilder.addItem(
        Row.builder()
            .setOnClickListener(ParkedOnlyOnClickListener.create(() -> onClick("Parked action")))
            .setTitle("Parked Only Title")
            .addText("More Parked only text.")
            .build());

    for (int i = 2; i <= 15; ++i)  //if items < 6 then it works fine
      final String onClickText = "Clicked row: " + i;
      listBuilder.addItem(
          Row.builder()
              .setOnClickListener(() -> onClick(onClickText))
              .setTitle("Title " + i)
              .addText("First line of text")
              .addText("Second line of text")
              .build());
    

异常 - 原因:java.lang.IllegalArgumentException:数字 添加的行数超过了支持的最大值 6

我正在使用'com.google.android.libraries.car:car-app:1.0.0-beta.1' 库进行开发。

【问题讨论】:

【参考方案1】:

ListTemplate:表示项目列表的模板。

此模板允许 ItemList(s) 中总共最多 6 行。主机将忽略任何超过该限制的项目。每行最多可以通过 Row.Builder.addText(CharSequence) 添加 2 行文本。

因此,您无法执行此操作。

【讨论】:

感谢您的重播。我注意到默认的“电话”应用程序显示超过 6 个项目,例如联系人列表和最近通话记录。他们是怎么做到的? 我也有同样的问题。我认为在 google I/O 发布之后会更好 我找到了我要找的东西。 SearchTemplate 非常适合我

以上是关于如何在 ItemList.Builder (Android- Auto) 中添加超过 6 个项目?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Laravel 查询中使用多个 OR、AND 条件

如何在OpenGL中做“AND”模具?

Flutter-如何在firebase查询中使用逻辑AND以及如何更新数据?

诸如 NOT(!)、AND(&&) 等运算符在 java 中是如何工作的?

如何在 laravel 中使用 BETWEEN 和 AND

Rails,如何在它们之间使用“and”运算符链接范围?