如上图,是一个RecyclerView,这是我写的一个Launcher界面,按道理说触摸是不会产生焦点的,当我重启的时候,我不进行任何操作,当它自动锁屏时,我解锁,然后就能看到这个绿框了,真是恶心,如果我连上电脑,连接上投屏软件,此时还能用键盘的方向键控制焦点,效果如下:
一开始不知道是焦点问题时是真的恶心,完全摸不到头脑,知道是焦点问题后就禁用获取焦点:
android:focusable="false"
android:focusableInTouchMode="false"
发现没用,使用下面的属于可解决问题:
android:defaultFocusHighlightEnabled="false"
把这个属性加到RecyclerView上即可解决问题,不需要禁用焦点。这个属性上会有警告,告诉我们这个是Android8.0才有的属性,按照提示可以产生一个Android8.0的布局,如下:
它会生成一个layout-v26的文件夹,并产生一个一样的布局文件,只是在RecyclerView上会多一个属性:android:defaultFocusHighlightEnabled="false"。