在Android Webview评论框中未完全显示

时间:2012-06-07 09:52:44

标签: android webview facebook-comments

这是我的代码:

public class SampleFB1Activity extends Activity {

WebView web2,childView =null;
private LinearLayout parentLayout;
private Activity MyActivity;
private String requestUrl="http://example.com/test.html";

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    this.getWindow().requestFeature(Window.FEATURE_PROGRESS);
    setContentView(R.layout.main);

    getWindow().setFeatureInt(Window.FEATURE_PROGRESS,Window.PROGRESS_VISIBILITY_ON);
    parentLayout =(LinearLayout)findViewById(R.id.parentlayout);
    MyActivity = this;

    web2 = new WebView(this);
    web2.setLayoutParams(getLayoutParams());

    web2.setWebViewClient(new FaceBookClient());
    web2.setWebChromeClient(new MyChromeClient());
    web2.getSettings().setJavaScriptEnabled(true);
    web2.getSettings().setAppCacheEnabled(true);
    web2.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
    web2.getSettings().setSupportMultipleWindows(true);
    web2.getSettings().setSupportZoom(true);
    web2.getSettings().setBuiltInZoomControls(true);

    parentLayout.addView(web2);
    web2.loadUrl(requestUrl);

}

private LayoutParams getLayoutParams() {
    // TODO Auto-generated method stub
    return new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.FILL_PARENT); 
}

final class MyChromeClient extends WebChromeClient{
    @Override
    public boolean onCreateWindow(WebView view, boolean dialog,
            boolean userGesture, Message resultMsg) {
        childView = new WebView(SampleFB1Activity.this);
        childView.getSettings().setJavaScriptEnabled(true);
        childView.getSettings().setSupportZoom(true);
        childView.getSettings().setBuiltInZoomControls(true);
        childView.setWebViewClient(new FaceBookClient());
        childView.setWebChromeClient(this);
        childView.setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.FILL_PARENT));

        parentLayout.addView(childView);

        childView.requestFocus();
        web2.setVisibility(View.GONE);

        WebView.WebViewTransport transport =(WebView.WebViewTransport)resultMsg.obj;
        transport.setWebView(childView);
        resultMsg.sendToTarget();
        return true;
    }

    @Override
    public void onProgressChanged(WebView view, int newProgress) {
        MyActivity.setProgress(newProgress*100);
    }

    @Override
    public void onCloseWindow(WebView window) {
        parentLayout.removeViewAt(parentLayout.getChildCount()-1);
        childView =null;
        web2.setVisibility(View.VISIBLE);
        web2.requestFocus();
    }
}

    private class FaceBookClient extends WebViewClient{
     @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        Log.i("REQUEST URL",url);
        return false;
    }   
}

    @Override
    public void onBackPressed() {
    if(childView != null && parentLayout.getChildCount()==2){
        childView.stopLoading();
        parentLayout.removeViewAt(parentLayout.getChildCount()-1);
        if(web2.getVisibility() == View.GONE)
            web2.setVisibility(View.VISIBLE);
    }else{          
        super.onBackPressed();
    }
}

在版本3中,我只能看到一半评论框,而不是评论框 它显示按钮(登录Facebook发表评论),但不会显示评论框。 请帮忙......

0 个答案:

没有答案