TV开发过程中WebView里的按钮获取不到焦点的问题

我们都知道,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>

Guess you like

Origin blog.csdn.net/ithouse/article/details/83859899