问题:电视界面上焦点移动看不出焦点在哪里
下图是 screencap 截图还能看出一点
解决思路:一般优先考虑改变应用的主题:
1 确认主题:
packages/apps/TvSettings/Settings$ vi AndroidManifest.xmlpackages/apps/TvSettings/Settings$ vi AndroidManifest.xml\
修改:
运行报错截图
关键信息:
12-25 13:52:36.409 5043 5043 E AndroidRuntime: android.view.InflateException: Binary XML file line #25 in
com.android.tv.settings:layout/leanback_preference_fragment: Binary XML file line #25 in
com.android.tv.settings:layout/leanback_preference_fragment: Error inflating class <unknown>
锁定下一步文件:
上面了整改应用的主题,范围过大了(整改fragment),改小点,改为修改preference的主题:
运行再次报错:
12-25 13:52:26.127 4686 4686 E AndroidRuntime: android.view.InflateException: Binary XML file line #18 in
com.android.tv.settings:layout/leanback_preferences_list: Binary XML file line #18
in com.android.tv.settings:layout/leanback_preferences_list: Error inflating class androidx.leanback.widget.VerticalGridView
修改:
增加一个透明外框的.9png
增加要给背景选择xml文件:
res/drawable/editbox_background.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_focused="true" android:drawable="@drawable/list_selector_background_focused_light" />
</selector>
修改:res/layout/leanback_preference.xml
.9资源文件来自:
frameworks/base/core/res$ find -name list_selector_background_focused_light.9.png
./res/drawable-xhdpi/list_selector_background_focused_light.9.png
最终效果: