【问题标题】:Set background color of selected main menu item of BrowseFragment设置 BrowseFragment 的选定主菜单项的背景颜色
【发布时间】:2016-11-23 03:21:21
【问题描述】:

我正在使用 Leanback BrowseFragment 并且需要能够在选中时设置标题项的背景颜色。任何可用于执行此操作的直接方法/XML 属性?我一直在研究 BrowseFragment 和leanback Themes.xml。

参考: https://developer.android.com/reference/android/support/v17/leanback/app/BrowseFragment.html https://android.googlesource.com/platform/frameworks/support/+/master/v17/leanback/res/values/themes.xml

【问题讨论】:

标签: android leanback


【解决方案1】:

在我的例子中,我使用了带有图标的自定义标题项。您可以在this 教程中查看详细信息。对于我布局中的 TextView,我在 color 目录中定义了 xml 文件,如下所示:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:color="@color/accent_color" android:state_selected="true"/>
<item android:color="@color/white"/>
</selector>

和相同的 xml 文件(但具有 android:drawable 属性)在目录 drawable 中。

    <?xml version="1.0" encoding="utf-8"?>
    <selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/icon_focused"
     android:state_selected="true"/>
    <item android:drawable="@drawable/icon"/>
</selector>

然后只需将android:textColor="@color/your_new_xml_file" 设置为TextView 并将您的可绘制文件用于您的标题ImageView

如果您需要更改View背景,不仅是标题图标和文本颜色,请将具有定义颜色的xml文件设置为View背景。

我的演示者类中的 OnSelectLevelChanged() 方法是空的(没有这个,就像上面的教程一样):

holder.view.setAlpha(mUnselectedAlpha + holder.getSelectLevel() *
                (1.0f - mUnselectedAlpha));

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-19
    • 1970-01-01
    • 2011-02-26
    • 1970-01-01
    • 1970-01-01
    • 2011-10-26
    相关资源
    最近更新 更多