【问题标题】:Android TV Preferences StandardAndroid TV 偏好设置标准
【发布时间】:2015-06-08 12:34:13
【问题描述】:

在查看 Android TV 偏好设置和 YouTube 等内置应用程序时,它们似乎使用如下所示的标准布局:

我找不到任何在 Android TV 上实现首选项的示例,也找不到任何 LeanBack 等库中引用的上述布局。

这是一个我可以重复使用的“标准”(就像普通的 Android PreferenceFragment 一样)还是我必须设计自己的偏好系统?

可以使用 LeanBack“BrowseFragment”复制第一张图像,但无法使用我目前找到的任何东西来实现下面的图像。

【问题讨论】:

    标签: android android-5.0-lollipop android-tv


    【解决方案1】:

    更新

    new support libraries 刚刚发布。大家欢呼GuidedStepFragment!它应该正是您想要的。


    不,很遗憾 Leanback 库中没有将视图作为独立小部件提供。如果你想亲自看看,see here

    它可以很容易地实现,但是很遗憾,您只能靠自己了。

    【讨论】:

    • 认为可能是这种情况,但认为最好在假设之前询问一下。
    【解决方案2】:

    自从原始答案的时间段以来,现在有一个可以包含和使用的 Leanback 首选项支持库。见以下链接:http://developer.android.com/tools/support-library/features.html#v17-preference

    特别是您不仅需要 GuidedStepFragment,还需要扩展 BaseLeanbackPreferenceFragment。

    【讨论】:

    • 不同的答案。现在有一个实际的 Preference 标签,另一个答案是指 GuidedStepFragment,它与 BaseLeanBackPreferenceFragment 完全不同。我将更新答案以更具体。
    • 到目前为止,我还没有看到任何流行的应用程序采用首选项支持 v17 库。我想知道它是否被提议成为下一个偏好标准,或者只是一种将所有这些东西拆分为 xml 的便捷方式?
    【解决方案3】:

    我在 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);
    

    【讨论】:

    • 这不能回答问题。
    猜你喜欢
    • 1970-01-01
    • 2013-03-27
    • 1970-01-01
    • 2011-02-08
    • 1970-01-01
    • 2023-03-11
    • 1970-01-01
    • 2014-10-10
    相关资源
    最近更新 更多