Leanback

使用适合 dpad 的 widget 和模板 fragment 为 Android TV 设备编写应用。
最近更新时间 稳定版 候选版 Beta 版 Alpha 版
2023 年 11 月 15 日 1.0.0 1.1.0-rc02 - 1.2.0-alpha04

声明依赖项

如需添加 Leanback 的依赖项,您必须将 Google Maven 代码库添加到项目中。如需了解详情,请参阅 Google 的 Maven 制品库

在应用或模块的 build.gradle 文件中添加所需工件的依赖项:

Groovy

dependencies {
    def leanback_version = "1.2.0-alpha04"

    implementation "androidx.leanback:leanback:$leanback_version"

    // leanback-preference is an add-on that provides a settings UI for TV apps.
    implementation "androidx.leanback:leanback-preference:$leanback_version"

    // leanback-paging is an add-on that simplifies adding paging support to a RecyclerView Adapter.
    implementation "androidx.leanback:leanback-paging:1.1.0-alpha11"

    // leanback-tab is an add-on that provides customized TabLayout to be used as the top navigation bar.
    implementation "androidx.leanback:leanback-tab:1.1.0-beta01"
}

Kotlin

dependencies {
    val leanback_version = "1.2.0-alpha04"

    implementation("androidx.leanback:leanback:$leanback_version")

    // leanback-preference is an add-on that provides a settings UI for TV apps.
    implementation("androidx.leanback:leanback-preference:$leanback_version")

    // leanback-paging is an add-on that simplifies adding paging support to a RecyclerView Adapter.
    implementation("androidx.leanback:leanback-paging:1.1.0-alpha11")

    // leanback-tab is an add-on that provides customized TabLayout to be used as the top navigation bar.
    implementation("androidx.leanback:leanback-tab:1.1.0-beta01")
}

如需详细了解依赖项,请参阅添加 build 依赖项

反馈

您的反馈将帮助我们改进 Jetpack。如果您发现了新问题,或对此库有任何改进建议,请告诉我们。创建新问题前,请先查看此库中的现有问题。您可以点击星标按钮,为现有问题投票。

创建新问题

如需了解详情,请参阅问题跟踪器文档

Leanback-Grid 版本 1.0.0

版本 1.0.0-alpha03

2023 年 11 月 15 日

发布了 androidx.leanback:leanback-grid:1.0.0-alpha03版本 1.0.0-alpha03 中包含这些提交内容

依赖项更新

版本 1.0.0-alpha02

2023 年 9 月 6 日

发布了 androidx.leanback:leanback-grid:1.0.0-alpha02版本 1.0.0-alpha02 中包含这些提交内容

API 变更

  • setFocusOutAllowed 公开,以允许以编程方式设置聚焦属性。(Iebd99

bug 修复

  • 通过设置 a11y 节点信息类名称,确保 a11y 服务将网格视为网格。(I12812)
  • 添加了掉落时缺少的导航提示音,以便顺畅滚动。(f49767)

版本 1.0.0-alpha01

2021 年 11 月 17 日

发布了 androidx.leanback:leanback-grid:1.0.0-alpha01版本 1.0.0-alpha01 中包含这些提交内容

新功能

  • 将以下类/接口从 leanback 移到了新的 leanback-grid 库中:BaseGridViewFacetProviderFacetProviderAdapterGridLayoutManagerHorizontalGridViewItemAlignmentFacetOnChildLaidOutListenerOnChildSelectedListenerOnChildViewHolderSelectedListenerVerticalGridViewViewHolderTaskVisibility。此更改会保留二进制兼容性。任何愿意只使用 Leanback 的网格视图组件的用户可以直接使用 leanback-grid 作为依赖项。(If1e49)

Leanback Leanback-Preference 版本 1.2.0

版本 1.2.0-alpha04

2023 年 11 月 15 日

发布了 androidx.leanback:leanback:1.2.0-alpha04androidx.leanback:leanback-preference:1.2.0-alpha04版本 1.2.0-alpha04 中包含这些提交内容

bug 修复

依赖项更新

  • 将 recyclerview 要求更新为 1.3.2,以修复 TV 应用中的常见崩溃问题

版本 1.2.0-alpha03

2023 年 9 月 6 日

发布了 androidx.leanback:leanback:1.2.0-alpha03androidx.leanback:leanback-preference:1.2.0-alpha03版本 1.2.0-alpha03 中包含这些提交内容

API 变更

  • 添加了 GuidedActionAppCompatEditText,以更好地支持 AppCompat 主题。(ab7cf1dc954d

版本 1.2.0-alpha02

2021 年 11 月 17 日

发布了 androidx.leanback:leanback:1.2.0-alpha02androidx.leanback:leanback-preference:1.2.0-alpha02版本 1.2.0-alpha02 中包含这些提交内容

新功能

  • 将以下类/接口从 leanback 移到了新的 leanback-grid 库中:BaseGridViewFacetProviderFacetProviderAdapterGridLayoutManagerHorizontalGridViewItemAlignmentFacetOnChildLaidOutListenerOnChildSelectedListenerOnChildViewHolderSelectedListenerVerticalGridViewViewHolderTaskVisibility。此更改会保留二进制兼容性。任何愿意只使用 Leanback 的网格视图组件的用户可以直接使用 leanback-grid 作为依赖项。(If1e49)

版本 1.2.0-alpha01

2021 年 7 月 21 日

发布了 androidx.leanback:leanback:1.2.0-alpha01androidx.leanback:leanback-preference:1.2.0-alpha01版本 1.2.0-alpha01 中包含这些提交内容

新功能

  • 使 leanback GridLayoutManager 在 BaseGridView 中公开且可交换。(f316b5)

API 变更

  • 使 leanback GridLayoutManager 在 BaseGridView 中公开且可交换。(f316b5)

版本 1.1.0

Leanback 版本 1.1.0-rc02

2021 年 7 月 21 日

发布了 androidx.leanback:leanback:1.1.0-rc02版本 1.1.0-rc02 中包含这些提交内容

bug 修复

  • 修复了详情 fragment 后台 bug。(40d8e3)

Leanback Leanback-Preference 版本 1.1.0-rc01

2021 年 4 月 7 日

发布了 androidx.leanback:leanback:1.1.0-rc01androidx.leanback:leanback-preference:1.1.0-rc01版本 1.1.0-rc01 中包含这些提交内容

  • 修复了 SearchSupportFragment() 中的 View 泄漏问题(6c47a1b/171909417
  • 使语音识别器成为了 SearchSupportFragment 的可选项(4ff949b/169936953

Leanback-Paging 版本 1.1

版本 1.1.0-alpha11

2023 年 11 月 15 日

发布了 androidx.leanback:leanback-paging:1.1.0-alpha11,该版本没有任何变化。版本 1.1.0-alpha11 中包含这些提交内容

版本 1.1.0-alpha10

2023 年 9 月 6 日

发布了 androidx.leanback:leanback-paging:1.1.0-alpha10版本 1.1.0-alpha10 中包含这些提交内容

新功能

  • 将 leanback-Paging 更新为 Paging 3.1.0。(882ed1)

Leanback-Paging 版本 1.1.0-alpha09

2021 年 11 月 17 日

发布了 androidx.leanback:leanback-paging:1.1.0-alpha09版本 1.1.0-alpha09 中包含这些提交内容

bug 修复

  • 已更新为使用最新的 Paging API。

Leanback-Paging 版本 1.1.0-alpha08

2021 年 7 月 21 日

发布了 androidx.leanback:leanback-paging:1.1.0-alpha08版本 1.1.0-alpha08 中包含这些提交内容

API 变更

  • 在 PagingDataAdapter 中添加了 .peek().snapshot() API,以允许在不触发页面提取的情况下检查提供的数据。(Ic8917)

Leanback-Paging 版本 1.1.0-alpha07

2021 年 1 月 13 日

发布了 androidx.leanback:leanback-paging:1.1.0-alpha07版本 1.1.0-alpha07 中包含这些提交内容

API 变更

  • 更新了便捷属性 CombinedLoadStates.refreshCombinedLoadStates.prependCombinedLoadStates.append,让它们仅能在 mediator 和 source 加载状态均为 NotLoading 之后才能从 Loading 转换到 NotLoading,以确保远程更新得以应用。(I65619)

Leanback Leanback-Preference Leanback-Tab 版本 1.1.0-beta01

2020 年 12 月 2 日

发布了 androidx.leanback:leanback:1.1.0-beta01androidx.leanback:leanback-preference:1.1.0-beta01androidx.leanback:leanback-tab:1.1.0-beta01版本 1.1.0-beta01 中包含这些提交内容

bug 修复

  • 修复了在将 VerticalGridSupportFragment 推送至返回堆栈时发生的 View 泄漏问题(Iaac69b/171909417
  • 修复了在将 BrowseSupportFragment 推送至返回堆栈时发生的 View 泄漏问题(I34483b/171909417
  • 修复了在将 DetailsSupportFragment 推送至返回堆栈时发生的 View 泄漏问题(Ifec9eb/171909417
  • 修复了在将 RowsSupportFragment 推送至返回堆栈时发生的 View 泄漏问题(I985d4b/171909417
  • 修复了 GuidedStepSupportFragment 背景过渡动画。(I86d15b/173647688
  • 修复了恢复 GuidedStepSupportFragment 时抛出的 IllegalArgumentException(Ic829fb/172000115
  • 修复了运行 clearFocus() 时 findContainingItemView() 中抛出的 GridLayoutManager NullPointerException (Id0e42)

Leanback-Paging 版本 1.1.0-alpha06

2020 年 12 月 2 日

发布了 androidx.leanback:leanback-paging:1.1.0-alpha06版本 1.1.0-alpha06 中包含这些提交内容

API 变更

  • 移除了 dataRefreshFlow/dataRefreshListener API,因为它们与 loadStateFlow/Listener 更新重复了。对于此类迁移,loadStateFlow 相当于:

    loadStateFlow.distinctUntilChangedBy { it.refresh }
        .filter { it.refresh is NotLoading }
    

    Ib5570b/173530908

  • 完全弃用了 dataRefreshFlow/Listener 方法,现改用 replaceWith 子句。(I6e2dd)

版本 1.1.0-alpha05

2020 年 10 月 1 日

发布了 androidx.leanback:leanback-*:1.1.0-alpha05版本 1.1.0-alpha05 中包含这些提交内容。

新功能

  • 使 A11Y 导航遵从 GridLayoutManager focusOutFront 和 focusOutEnd 属性。(b/161390258)

bug 修复

  • 修复了 GuidanceStylist.onDestroyView() 中的 View 泄漏问题 (b/164841457)
  • 修复了 GridLayoutManager 中的 ConcatAdapter (b/165694295)
  • leanback-tab:改进了 Javadoc 并对代码进行了细微重构 (aosp/1393383)
  • 从 API 中移除了 setRecyclerView 方法,该方法在从 RecyclerView 上弃用它时添加。更新了 Leanback 库以使用 RecyclerView 的新 addRecyclerListener API 方法。(I14798)

版本 1.1.0-alpha04

2020 年 8 月 11 日

发布了 androidx.leanback:leanback:1.1.0-alpha04androidx.leanback:leanback-paging:1.1.0-alpha04androidx.leanback:leanback-preference:1.1.0-alpha04androidx.leanback:leanback-tab:1.1.0-alpha04版本 1.1.0-alpha04 中包含这些提交内容

新功能

  • LeanbackTabLayout 可在浏览体验中提供顶层导航(通常在应用顶部水平显示)。
  • Leanback 分页简化了为 RecyclerView.Adapter 添加分页支持的过程。
  • 为 Leanback 添加了 appcompat 主题背景,可简化创建移动设备与电视之间的单一代码库的过程。

API 变更

  • 为 Leanback 微件添加了基于 asyncpagingdatadiffer 的适配器 (If0dfe)
  • 添加了一个自定义 TabLayout,以用作 Leanback 中的顶层导航栏 (I1e304)

版本 1.1.0-alpha03

2019 年 12 月 18 日

发布了 androidx.leanback:leanback:1.1.0-alpha03androidx.leanback:leanback-preference:1.1.0-alpha03Leanback 版本 1.1.0-alpha03 中包含这些提交内容Leanback-Preference 版本 1.1.0-alpha03 中包含这些提交内容

新功能

  • BaseGridView 现在支持自定义滚动速度 (aosp/952718)
  • 改进了引导步骤项的触摸体验 (aosp/1167964)
  • 公开了 BaseGridView OnLayoutCompleteListener,以使应用能够在遍历布局后执行视图转换。(aosp/1164409)

API 变更

  • 新增了一个 API,以允许自定义 BaseGridView 滚动速度 (aosp/952718)
  • 新增了一个 API,以便在 BaseGridView 中添加 OnLayoutCompleteListener (aosp/1164409)

bug 修复

  • 修复了快速遍历布局无法更新子项对齐方式的 bug。(aosp/1122745)
  • 修复了焦点变化时选择器微件中的 Stack Overflow 崩溃问题 (aosp/1168473)

依赖项变更

  • Leanback-preference:将 androidx.preference 的依赖项固定到了 1.1.0 (aosp/1181902)

版本 1.1.0-alpha02

2019 年 5 月 7 日

发布了 androidx.leanback:leanback:1.1.0-alpha02androidx.leanback:leanback-preference:1.1.0-alpha02。若要了解此版本中包含的提交内容,请查看 leanback 提交内容leanback-preference 提交内容

新功能

  • RowsSupportFragment 现在可与其他 RowsSupportFragment 共享 ViewHolder,这有助于提升多标签页界面的性能。

API 变更

  • 添加了 PlaybackSupportFragment.setShowOrHideControlsOverlayOnUserInteraction(),以允许应用停用在用户按方向键时自动隐藏/显示播放控件的功能。

bug 修复

  • 修复了由于 preference 库中的更改而导致 leanback-preference fragment 主题损坏的问题。
  • 修复了在 SearchEditText 上按返回键时出现的导航 bug。

版本 1.1.0-alpha01

2019 年 1 月 30 日

发布了 androidx.leanback:leanback 1.1.0-alpha01

新功能

  • 添加了 PinPicker 微件。
  • 现在,默认情况下在低内存设备上停用轮廓裁剪。
  • 允许自定义的 PlaybackSupportFragment 显示/隐藏控件行为。(b/122918400)

API 变更

  • 框架 fragment 已废弃。
  • 添加了新的 PinPicker 类。

bug 修复

  • 修复了 BrowseSupportFragment 停止后 Fragment 事务崩溃的问题
  • GuidedStepSupportFragment 不应裁剪 VerticalGridView 中的项 (aosp/787396)
  • onCreateActionsStylist()onCreateGuidanceStylist() 已从构造函数移至 GuidedSupportFragment.onCreate() (aosp/787397)
  • 修复了 SearchSupportFragment 无法聚焦到结果 fragment 的 bug。(aosp/798833)
  • 修复了 VerticalGridViewHorizontalGridView 中的滚动 bug (aosp/858809)

发布了 androidx.leanback-preference 1.1.0-alpha01

新功能

  • 添加了 androidx Fragment 类,弃用了框架 Fragment 类。
  • 颜色和字体现在基于框架主题背景属性。

API 变更

  • 添加了新的 androidx Fragment 类,弃用了框架 Fragment 类。