为 Android TV 应用程序更改 BrowseFragment 的 SearchView 默认图标?

Posted

技术标签:

【中文标题】为 Android TV 应用程序更改 BrowseFragment 的 SearchView 默认图标?【英文标题】:Change SearchView default icon for BrowseFragment for Android TV applications? 【发布时间】:2016-01-15 08:43:57 【问题描述】:

对于 Leanback BrowseFragment,默认情况下,屏幕左侧有一个搜索视图。是否可以更改 SearchOrbView 的默认图标或隐藏它。

https://cdn-images-1.medium.com/max/800/1*oIFbcdjYrIqxU55-B23tjA.gif

【问题讨论】:

【参考方案1】:

如developer.android.com 上的文档所述,如果您不调用setOnSearchClickedListener,搜索球将不可见:

public void setOnSearchClickedListener(View.OnClickListener 监听器)

为搜索功能设置点击监听器。

侦听器的存在将改变搜索的可见性 片段标题中的启示。当设置为非空时,标题将 包含用户可以单击以开始搜索的元素。

如果您想更改 SearchOrbView 的图标,您可以编辑您的样式:

<style name="Theme.Example.Leanback" parent="Theme.Leanback">
    <item name="searchOrbViewStyle">@style/CustomSearchOrbView</item>
</style>

<style name="CustomSearchOrbView" parent="Widget.Leanback.SearchOrbViewStyle">
    <item name="searchOrbIcon">@drawable/your_search_orb_icon</item>
</style>

【讨论】:

【参考方案2】:

如果你想改变图标然后在你的styles.xml中

 <style name="NewSeachTheme" parent="Theme.Leanback">
    <item name="searchOrbViewStyle">@style/CustomSearchOrbView</item>
    <item name="defaultSearchColor">@color/transparent</item>
</style>

<style name="CustomSearchOrbView" parent="Widget.Leanback.SearchOrbViewStyle">
    <item name="searchOrbIcon">add your drawable here</item>
    <item name="searchOrbIconColor">@color/transparent</item>
</style>

这里的 searchOrbIconColor 是透明的,因为如果您的图标很小,那么默认图标颜色将显示在您使用的搜索图标后面。 然后将新样式“NewSeachTheme”添加到清单中的主题。 快乐编码:)

【讨论】:

以上是关于为 Android TV 应用程序更改 BrowseFragment 的 SearchView 默认图标?的主要内容,如果未能解决你的问题,请参考以下文章

更改 Android TV 应用程序的日期选择器 UI

如何在 Android TV 上以编程方式更改电视频道

为 Android TV 创建一个监听器应用程序有多难?

Android TV,如何更改标题的颜色和标题的颜色?

Android TV:如何通知 Card Presenter 项目更改

焦点更改时强制 RecyclerView 滚动(Android TV)