- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有针对 Android TV 应用程序的定制设计,并非所有设计都与 Leanback 库中的小部件匹配。如何使用设计支持库(例如 TabLayout)?它提示我需要使用 AppCompat 主题。我知道谷歌不建议在电视上使用标签。
最佳答案
要在 Leanback 应用程序中创建 TabLayout
,您可以使用 ContextThemeWrapper
(我用 Kotlin 编写了它):
override fun onCreateView(inflater: LayoutInflater?, container: ViewGroup?, savedInstanceState: Bundle?): View {
val c = ContextThemeWrapper(activity, R.style.Theme_AppCompat)
return LayoutInflater.from(c).inflate(R.layout.my_tablayout, container, false)
}
为了让 DPAD 正常工作,我将 TabLayout
子类化如下:
class FocusableTabLayout(context: Context, attributeSet: AttributeSet): TabLayout(context, attributeSet) {
override fun focusSearch(focused: View?, direction: Int): View? {
val view = super.focusSearch(focused, direction)
if (hasFocus() && view != null) {
if (direction == View.FOCUS_LEFT) {
if (selectedTabPosition > 0) {
getTabAt(selectedTabPosition - 1)?.select()
}
} else if (direction == View.FOCUS_RIGHT) {
if (selectedTabPosition < tabCount) {
getTabAt(selectedTabPosition + 1)?.select()
}
}
}
return view
}
override fun requestFocus(direction: Int, previouslyFocusedRect: Rect?): Boolean {
val tabStrip = getChildAt(0) as LinearLayout
tabStrip.getChildAt(selectedTabPosition).requestFocus()
return true
}
}
如果您计划将 TabLayout
与 ViewPager
一起使用,请使用此子类来防止一页上的 DPAD 交互触发幻灯片:
class FocusableViewPager(context: Context, attributeSet: AttributeSet): ViewPager(context, attributeSet) {
override fun executeKeyEvent(event: KeyEvent): Boolean {
return false
}
}
关于android - 如何将设计支持库与 leanback 一起用于 android TV?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45008602/
我是 Android TV 开发的新手。我不知道要使用哪种类型的 fragment 。我想要两个实现布局类似于上面的屏幕截图作为 jiocinema。我以某种方式在 Activity 布局中使用两个
当使用 Leanback 和 exoplayer 实现 firetv 应用程序时,我使用了 exoplayer 提供的 LeanbackPlayerAdapter。我还使用了扩展 PlaybackTr
大家好,我正在开发应用程序,我的布局结构如下: RelativeLayout: CompoundView: CompoundView: RelativeLayout
我想要透明的 PlaybackControlsRow 背景而不是颜色 我已经尝试将背景颜色设置为 #00000000 但它显示一些灰色背景。在下图中,我想要透明色而不是绿色。 最佳答案 您应该能够通过
我正在使用 Leanback 支持库构建一个 Android TV 应用程序 PageRow 我几乎在关注 leanback-showcase 同一个应用程序在做什么 here ,但我想知道是否可以在
我正在开发一款 Android TV 应用。默认情况下,它使用 Leanback 主题。当应用程序在设备上运行时,没有状态栏,显然是因为它是一台电视。然而,在 Android Studio 中的渲染屏
实际上,我正在为 Android TV 开发一个应用程序。我使用来自 leanback 支持库 v17 的 BrowseFragment 来按子菜单导航。但是,现在我正在尝试构建家庭 Activity
所以我正在构建一个可在基于 Android 的流媒体上运行的靠背启动器应用程序。 为了构建自定义启动器,我阅读了 Google 的所有规范。 现在,为了让它成为一个启动器,我需要该应用程序作为 str
我想在 Activity 中使用 BrowseFragment 以及另一个 fragment 。另一个 fragment 的目的是有一个 ListView ,在每个选定的项目上,BrowseFragm
作为为 Android TV 开发自定义启动器应用程序的一部分,我必须根据设备中已安装的应用程序列表显示应用程序列表侧屏幕。 要打开设备上的通知屏幕,有一个简单的操作:“com.android.tv.
[环境] Android Studio 1.1.0 buildToolsVersion "21.1.2" 当我构建“androidtv-Leanback-master”时遇到了这个错误: Execut
我正在为电视构建 android 应用程序并将主题设置为 Theme.Leanback 在 android-support-v17-leanback.jar 支持库中定义。但是当我构建我的应用程序时出
我正在使用 VerticalGridFragment 以类似网格的布局显示项目我不需要显示搜索或标题,我希望行从屏幕顶部开始,没有任何边距。有什么帮助吗? 最佳答案 我找到了一种方法,方法是覆盖 Ve
我有一个使用 DetailsOverviewRow 和 FullWidthDetailsOverviewRowPresenter 的细节 fragment 。当页面首次加载时,将选择操作按钮。当我按下
我有一个非常基本的任务:使用 Leanback 框架和 Exoplayer 实现 HLS 视频流。 我使用一个简单的单 fragment 布局: 显然,VideoFragment 带有
我正在使用 Leanback 库,我想知道如何创建多个自定义行 View 。要连续创建不同的项目,您需要扩展 PresenterSelector 我尝试对 ListRowPresenter 执行相同的
我发现了一些适用于 Leanback 的示例和 ExoPlayer我有所有这些工作,但我无法让字幕/字幕工作。我能找到的最新 Google 示例 (https://github.com/android
我从 android studio 添加了一个leanback 示例 Activity 。 Activity 因以下堆栈跟踪而崩溃。我没有修改代码,我看到默认添加的所有布局都定义了 layout_wi
我们正在尝试使用架构组件分页库在 Leanback VerticalGridSupportFragment 中实现分页。 Leanback 本身与分页库没有任何开箱即用的兼容性,因此我们扩展了它的 O
我正在开发一个播放视频的 Android TV 应用,并使用 PlaybackSupportFragment 来实现屏幕控件。然而,我无法完全隐藏次要操作(竖起大拇指、竖起大拇指、重复……)。实际上我
我是一名优秀的程序员,十分优秀!