更改 Android 电视应用程序 BrowseFragment 的 SearchView 默认图标?

Change SearchView default icon for BrowseFragment for Android TV applications?

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

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

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

public void setOnSearchClickedListener (View.OnClickListener listener)

Sets a click listener for the search affordance.

The presence of a listener will change the visibility of the search affordance in the fragment title. When set to non-null, the title will contain an element that a user may click to begin a search.

如果您想改为更改 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>

如果你想改变图标那么在你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" 添加到清单中的 Theme 中。 编码愉快 :)