Android Webview首先呈现,而活动的其余部分为黑色

Android Webview首先呈现,而活动的其余部分为黑色,android,android-webview,Android,Android Webview,由于WebView有一个相当奇怪的问题,决定询问经验丰富的Android用户,他们可能会遇到类似的行为。情况如下: 打开一个包含大量文本视图和单个Web视图的活动。最初渲染一切都很好 从此活动中打开另一个活动,其中显示了与第一个活动相关的一些其他详细信息 当用户单击“后退”按钮,并且“详细信息”活动关闭时,我希望主活动能够正确地恢复,但在50%的情况下,WebView会立即显示,而其余活动会显示约一秒钟。挺烦人的 我用以下代码填写活动控件: void fillData(Context con

由于WebView有一个相当奇怪的问题,决定询问经验丰富的Android用户,他们可能会遇到类似的行为。情况如下:

  • 打开一个包含大量文本视图和单个Web视图的活动。最初渲染一切都很好
  • 从此活动中打开另一个活动,其中显示了与第一个活动相关的一些其他详细信息
  • 当用户单击“后退”按钮,并且“详细信息”活动关闭时,我希望主活动能够正确地恢复,但在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中,但是它包装了内容,因此没有出现双滚动故障


谢谢

终于找到问题了。是由上述对fillData()方法的双重调用引起的,第一次是在打开Details活动时,第二次是在主活动的onResume()中。很可能是它导致了一些渲染故障,但不确定具体是什么