Webview首先呈现,而其余活动为黑色

时间:2013-09-11 15:15:49

标签: android android-webview

WebView遇到了一个奇怪的问题,决定让经验丰富的Android玩家遇到类似行为。场景如下:

  • 打开一个活动,其中包含一堆textViews和单个WebView。最初渲染一切都很好。
  • 从此活动中打开另一项活动,其中显示与第一项活动相关的一些其他详细信息。
  • 当用户单击“返回”按钮并且“详细信息”活动关闭时,我希望主要活动能够正常渲染自身,但在50%的情况下,WebView会立即显示,而其余活动为黑色大约一秒钟。真烦人

我使用以下代码填写活动控件:

void fillData(Context context){     

    Command cmd = cmdList.get(index);

    if(cmd.getTypeId() == CMD_TYPE_EXTENSION){
        cmdName.setText(cmd.getName());
        String extStr = DALHelper.getInstance().getExtensionName(Integer.toString(cmd.getExtensionId()));
        extName.setText(extStr.substring(0, extStr.length() - 1));
        cmdDesc.setText(cmd.getDescription());
    }else{
        String name=cmd.getName()
                .concat(" (")
                .concat(cmd.getDescription())
                .concat(")");
        cmdName.setText(name);
        cmdDesc.setText(cmd.getComments());
    }
    if(cmd.getSyntax() != null){
        String s = alignSyntaxText(cmd.getSyntax());            
        cmdSyntax.setText(s);
    }

    String params = DALHelper.getInstance().getHtmlParameters(Integer.toString(cmd.getId()));
    if(params.length() > 0){
        params = params.substring(DUMMY_TAG_INDEX);
        htmlParams.loadDataWithBaseURL("fake://not/needed", Utils.removeBadCharacters(params), "text/html", "utf-8", null);         
    }           

    scroll.fullScroll(ScrollView.FOCUS_UP);
}

可能是最后一次调用fullScroll()的原因是什么?

还有一点需要注意的是,WebView与其他文本字段一起位于scrollView内部,但它包含内容,因此没有双滚动故障。

谢谢

1 个答案:

答案 0 :(得分:0)

最后找到了问题。是由上面提到的double调用fillData()方法引起的,第一次是在打开Details活动时,第二次是在主活动的onResume()中。很可能它会引起一些渲染故障,但不确定究竟是什么。