Android 电视偏好标准
Android TV Preferences Standard
在查看 Android 电视首选项和内置应用程序(如 YouTube)时,它们似乎使用如下所示的标准布局:
我找不到任何在 Android 电视上实现首选项的示例,也找不到任何 LeanBack 等库中引用的上述布局。
这是我可以重复使用的 "standard"(就像普通的 Android PreferenceFragment)还是我必须设计自己的偏好系统?
第一个图像可以用 LeanBack 复制 "BrowseFragment" 但下面的图像无法使用我目前找到的任何东西来实现。
更新
new support libraries have just been released. All hail GuidedStepFragment
!它应该正是您要找的。
不,遗憾的是 该视图在 Leanback 库中未作为独立小部件提供。如果你想自己看看,see here。
它可以很容易地实现,但是,唉,你只能靠自己了。
自从原回答的时间段以来,现在有一个可以包含和使用的 Leanback 首选项支持库。请参阅以下 link:http://developer.android.com/tools/support-library/features.html#v17-preference
特别是您不仅需要 GuidedStepFragment,还需要扩展 BaseLeanbackPreferenceFragment。
我在 Android STB
的 AOSP 版本中找到了这段代码
它适用于 Android 6.0 AOSP 以及原始 Android 电视。对于非电视设备,需要使用 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);
在查看 Android 电视首选项和内置应用程序(如 YouTube)时,它们似乎使用如下所示的标准布局:
我找不到任何在 Android 电视上实现首选项的示例,也找不到任何 LeanBack 等库中引用的上述布局。
这是我可以重复使用的 "standard"(就像普通的 Android PreferenceFragment)还是我必须设计自己的偏好系统?
第一个图像可以用 LeanBack 复制 "BrowseFragment" 但下面的图像无法使用我目前找到的任何东西来实现。
更新
new support libraries have just been released. All hail GuidedStepFragment
!它应该正是您要找的。
不,遗憾的是 该视图在 Leanback 库中未作为独立小部件提供。如果你想自己看看,see here。
它可以很容易地实现,但是,唉,你只能靠自己了。
自从原回答的时间段以来,现在有一个可以包含和使用的 Leanback 首选项支持库。请参阅以下 link:http://developer.android.com/tools/support-library/features.html#v17-preference
特别是您不仅需要 GuidedStepFragment,还需要扩展 BaseLeanbackPreferenceFragment。
我在 Android STB
的 AOSP 版本中找到了这段代码它适用于 Android 6.0 AOSP 以及原始 Android 电视。对于非电视设备,需要使用 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);