如何在android中获取Webview的宽度和高度

min*_*ini 8 android android-widget

我想确定它的宽度和高度WebView.我已经尝试过使用:

webView.getWidth();
webView.getHeight();
Run Code Online (Sandbox Code Playgroud)

但结果日志始终显示为0.

gaw*_*cks 5

这是一个更优雅的解决方案

public void onCreate(Bundle savedInstanceState) {


        webView = (WebView) findViewById(R.id.webView1);

        webView.addOnLayoutChangeListener(new OnLayoutChangeListener() {

            @Override
            public void onLayoutChange(View v, int left, int top, int right,int bottom, int oldLeft, int oldTop, int oldRight, int oldBottom) {
                 int w= webView.getWidth();
                 int h= webView.getHeight();


            }
        });



    }   
Run Code Online (Sandbox Code Playgroud)


Bos*_*one 1

嗯 - 我查看了 WevView 源代码,我可以看到他们在内部使用 View#getWidth 和 View#getHeight 这是 的WebView私有方法之一:

/*
 * Return the width of the view where the content of WebView should render
 * to.
 */
private int getViewWidth() {
    if (!isVerticalScrollBarEnabled() || mOverlayVerticalScrollbar) {
        return getWidth();
    } else {
        return getWidth() - getVerticalScrollbarWidth();
    }
}
Run Code Online (Sandbox Code Playgroud)

正如评论中所述,您必须确保在分配活动布局后进行测量,例如setContentView(R.layout.mylayout);