在查看 Android TV 偏好设置和 YouTube 等内置应用程序时,它们似乎使用标准布局,如下所示:
我找不到任何在 Android TV 上实现首选项的示例,也找不到任何 LeanBack 等库中引用的上述布局。
这是我可以重复使用的“标准”(如普通的 Android PreferenceFragment)还是我必须设计自己的偏好系统?
第一个图像可以用 LeanBack“BrowseFragment”复制,但下面的图像不能使用我迄今为止找到的任何东西来实现。
在查看 Android TV 偏好设置和 YouTube 等内置应用程序时,它们似乎使用标准布局,如下所示:
我找不到任何在 Android TV 上实现首选项的示例,也找不到任何 LeanBack 等库中引用的上述布局。
这是我可以重复使用的“标准”(如普通的 Android PreferenceFragment)还是我必须设计自己的偏好系统?
第一个图像可以用 LeanBack“BrowseFragment”复制,但下面的图像不能使用我迄今为止找到的任何东西来实现。
更新
新的支持库刚刚发布。万岁GuidedStepFragment
!它应该正是您正在寻找的。
不,不幸的是,Leanback 库中没有将视图作为独立小部件提供。如果你想亲自看看,请看这里。
它可以很容易地实现,但是很遗憾,您只能靠自己了。
从原始答案的时间段开始,现在有一个可以包含和使用的 Leanback 首选项支持库。请参阅以下链接:http: //developer.android.com/tools/support-library/features.html#v17-preference
特别是您不仅需要 GuidedStepFragment,还需要扩展 BaseLeanbackPreferenceFragment。
我在 AOSP build for Android STB 中找到了这段代码
它适用于 Android 6.0 AOSP 以及原始 Android TV。resolveActivity()
非电视设备需要额外检查。
public static String COMPONENT_TV_SETTINGS = "com.android.tv.settings/com.android.tv.settings.MainSettings";
Intent intent = new Intent();
intent.setComponent(ComponentName.unflattenFromString(COMPONENT_TV_SETTINGS));
if (intent.resolveActivity(getActivity().getPackageManager()) == null) {
intent.setAction(Settings.ACTION_SETTINGS); // Standard settings
}
startActivity(intent);