WebView - 使用硬件控件而不是遍历页面元素时滚动

时间:2017-02-23 04:18:45

标签: android webview

我在AndroidTV应用中使用while(tokenIndex < numTokens){。我遇到的问题是,当您使用硬件控制器导航时,本机行为是焦点移动到正在显示的页面上的每个元素。我想要的是当你按下DPAD时它将向下滚动webView而不是移动到webView正在显示的页面上的下一个对象,因为有时候在页面上可以有10个以上的可聚焦对象。会滚动哪些不是很好的用户体验。

从技术上讲,它可以包装在ScrollView中,但开发人员文档强烈反对在ScrollViews中包装可滚动项目,因为它非常低效。

有没有办法告诉webView不要让页面上的各个元素都可以聚焦,但让webView本身仍然可以聚焦,以便它可以滚动。

1 个答案:

答案 0 :(得分:0)

您可以扩展WebViewClient来抑制WebView中的点击。然后,您可以像简单滚动视图一样滚动WebView,而不用跳转页面中的链接。示例CustomWebViewClient

public class CustomWebViewClient extends WebViewClient {

    @Override
    public boolean shouldOverrideKeyEvent (WebView view, KeyEvent event) {
        return true; //Ignore clicks
    }
}

然后将此CustomWebViewClient设置为您的网络视图:

webView.setWebViewClient(new CustomWebViewClient() {
            ...
        });