使用音量键滚动webView

时间:2011-02-09 19:19:51

标签: android webview scroll keyevent

如何使用音量硬键滚动webView? ......可以通过宽松来完成吗?如果是这样,怎么样?我是Android的nooB - 来自ActionScript,任何帮助将不胜感激。

my R.id.webPg001 is a WebView id.

这就是我现在所处的位置:

@Override
  public boolean dispatchKeyEvent(KeyEvent event) {
      int action = event.getAction();
      int keyCode = event.getKeyCode();
      ScrollView scrollView;
      scrollView = (ScrollView) findViewById(R.id.webPg001);        
          switch (keyCode) {
          case KeyEvent.KEYCODE_VOLUME_UP:
              if (action == KeyEvent.ACTION_UP) {
                  scrollView.pageScroll(ScrollView.FOCUS_UP);
                  scrollView.computeScroll(); 
              }
              return true;
          case KeyEvent.KEYCODE_VOLUME_DOWN:
              if (action == KeyEvent.ACTION_UP) {
          scrollView.pageScroll(ScrollView.FOCUS_DOWN);
                  scrollView.computeScroll(); 
              }
              return true;
          default:
              return super.dispatchKeyEvent(event);
          }
      }

3 个答案:

答案 0 :(得分:2)

这是正确的代码:(thnx NdrU !!)

@Override
public boolean dispatchKeyEvent(KeyEvent event) {
    int action = event.getAction();
    int keyCode = event.getKeyCode();
    WebView scrollView = (WebView) findViewById(R.id.ch01);     
        switch (keyCode) {
        case KeyEvent.KEYCODE_VOLUME_UP:
            if (action == KeyEvent.ACTION_DOWN) {
                scrollView.pageUp(false);   
            }
            return true;
        case KeyEvent.KEYCODE_VOLUME_DOWN:
            if (action == KeyEvent.ACTION_DOWN) {
                scrollView.pageDown(false);
            }
            return true;
        default:
            return super.dispatchKeyEvent(event);
        }
    } 

答案 1 :(得分:1)

WebView有方法pageUppageDown,根据javadoc,它们会滚动半页,因此您可能需要调用它们两次以获得整页滚动。< / p>

关于你的代码,我认为听取按钮按下的优先方式是覆盖onKeyUponKeyDown方法,但我可能错了(我自己是android开发的新手) )。

答案 2 :(得分:1)

万一你不知道,导航的正常机制是使用箭头键或轨迹球进行硬件级导航。您的网页浏览应该插入此机制,而无需您自己付出额外的努力,因此,除非您有明确的应用程序特定原因可以使用内置功能,否则我建议您使用内置功能。<​​/ p>