我们都知道,TV不像手机,目前大多数TV的屏幕都是不支持触屏的,所以,焦点的控制只能依靠遥控器的方向按钮进行焦点转移。在开发Spotify授权的过程中,发现Spotify的WebView授权界面里的按钮得不到焦点,它原来的布局是
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/com_spotify_sdk_login_webview_container"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:drawable/dialog_frame"
android:visibility="invisible">
<WebView
android:id="@+id/com_spotify_sdk_login_webview"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:visibility="invisible"
android:focusable="true"/>
</LinearLayout>
经过测试,发现是android:visibility="invisible"这个属性在作祟,把这个属性去掉,代码变为如下即可正常获取焦点:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/com_spotify_sdk_login_webview_container"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:drawable/dialog_frame">
<WebView
android:id="@+id/com_spotify_sdk_login_webview"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:focusable="true"/>
</LinearLayout>