我在使用 JellyBean 时遇到问题,因为每当我使用键盘导航时,它都会自动聚焦我的超链接和输入的 html 元素。它创建了一个我无法用 css 隐藏的蓝色高光。
* {
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}
即使我确实将 z-index:-1 设置为每个 html 元素以禁用焦点,但是当我使用键盘导航时,JellyBean 仍然会自动对焦它们中的每一个。
这是我的html代码:
<html>
<head>
<title></title>
</head>
<body>
<a tabIndex="-1" href="http://www.yahoo.com">yahoo</a>
<a tabIndex="-1" href="http://www.google.com">google</a>
<a tabIndex="-1" href="http://www.msn.com">msn</a><br/>
<input type="button" name="" tabIndex="-1" value="yahoo">
<input type="button" name="" tabIndex="-1" value="google">
<input type="button" name="" tabIndex="-1" value="msn">
</body>
</html>
这是我的 webview 配置:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/mainLayout"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<WebView
android:id="@+id/webView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:focusable="false" />
</RelativeLayout>
这是我的活动:
package com.example.tony;
import android.annotation.TargetApi;
import android.app.Activity;
import android.os.Bundle;
import android.webkit.WebChromeClient;
import android.webkit.WebSettings;
import android.webkit.WebView;
public class WebActivity extends Activity {
private WebView mainWebView;
private WebSettings webSettings;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.web_view);
mainWebView = (WebView) findViewById(R.id.webView);
webSettings = mainWebView.getSettings();
webSettings.setJavaScriptEnabled(true);
webSettings.setPluginState(WebSettings.PluginState.ON);
mainWebView.setWebChromeClient(new WebChromeClient());
mainWebView.setScrollBarStyle(WebView.SCROLLBAR_POSITION_DEFAULT);
mainWebView.loadUrl("http://192.168.2.145/test/nav.html");
}
@TargetApi(16)
public void setURL(){
webSettings.setAllowUniversalAccessFromFileURLs(true);
}
}
使用 nexus 7 和其他一些软糖设备进行测试。是否有解决方案可以禁用对 html 元素级别的关注或禁用键盘导航自动对焦?