【问题标题】:webview is forcing my scrollview to the bottomwebview 迫使我的滚动视图到底部
【发布时间】:2010-12-30 22:29:44
【问题描述】:

我在滚动视图中有一个 webview,当 Activity 加载时,一旦 webview 完成“loadData”,它就会强制我的滚动视图到底部(webview 所在的位置)。 我如何防止这种情况发生? 我试过这个,但它会上下跳屏,这是我不想要的:

ScrollView scroll = (ScrollView)findViewById(R.id.detailsScroll);  
scroll.post(new Runnable()   
{  
    @Override  
    public void run()   
    {  
       ScrollView scroll = (ScrollView)findViewById(R.id.detailsScroll);  
       scroll.fullScroll(ScrollView.FOCUS_UP);  
    }  
});  

【问题讨论】:

  • 您不应该将 webview 放在滚动视图中。可滚动视图中的可滚动视图不起作用。
  • ok,那么如果Activity的内容比屏幕大怎么办呢?
  • ...这不是 admob 正在做的吗?加载内容后,似乎 webview 正在获得焦点,这导致滚动视图跳转。
  • @steve: "如果 Activity 的内容大于屏幕,我该怎么做?" -- 您可以使用ScrollView,只需将WebView 保留在它之外。例如,将屏幕的 2/3 分配给WebView,将其余部分分配给ScrollView,或其他。
  • @CommonsWare - 谢谢,这是有道理的。我想我将不得不把它放在另一个 Activity 中,它太大了。

标签: android android-webview android-scrollview


【解决方案1】:

fhucho 的答案是可以阻止 webview 滚动到底部。但是你会失去轨迹球等的所有可访问性。所以我发现了一个改进:

public class MyScrollView extends ScrollView {

    @Override 
    public void requestChildFocus(View child, View focused) { 
        if (focused instanceof WebView ) 
           return;
    super.requestChildFocus(child, focused);
    }
}

希望对你有帮助!

【讨论】:

  • 不幸的是,当单击 web 视图中的输入字段时,它会阻止键盘显示。
【解决方案2】:

用这个方法创建一个自定义的ScrollView:

@Override
public void requestChildFocus(View child, View focused) {
    if (child instanceof WebView) return;
}

【讨论】:

    【解决方案3】:

    对于焦点相关的问题,我发现这样做效果更好,将这些添加到 XML 中的 WebView:

        android:focusable="false"
        android:focusableInTouchMode="false"
    

    虽然对于提出的实际问题,只需添加另一个默认获得焦点的视图,而不是 WebView,应该可以解决该问题。我认为像我这样的其他人在尝试使用 ScrollView 中的 WebView 处理其他一般问题时可能会发现这一点。将上述内容添加到 XML 不会阻止 WebView 中的超链接工作。

    【讨论】:

      【解决方案4】:

      将此添加到您的主布局中

      android:descendantFocusability="blocksDescendants"

      【讨论】:

      • 这有帮助。但最好仅将其添加到 WebView 的父级。
      猜你喜欢
      • 1970-01-01
      • 2011-08-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-08
      • 1970-01-01
      • 2016-07-10
      • 2016-04-26
      相关资源
      最近更新 更多