1

我似乎无法显示我的 WebView。我怀疑这是因为它的大小为 0。我不知道如何将这个 WebView 归零!

这是我的布局:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

    <WebView
        android:id="@+id/webView1"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true" />

</RelativeLayout>

这是我的 onCreate():

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    View webViewLayout = ((LayoutInflater)this.getSystemService(Context.LAYOUT_INFLATER_SERVICE))
            .inflate(R.layout.twitterfeed, null, false);

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

    webView.getSettings().setDomStorageEnabled(true);
    webView.getSettings().setJavaScriptEnabled(true);

    String summary = "http://www.example.com";
    webView.loadUrl(summary);
    System.out.println("webView: " + webView.getWidth());
    System.out.println("webView: " + webView.getHeight());

}
4

2 回答 2

0

您正在膨胀您的布局,但从未通过将其附加到应用程序窗口来显示它Activity.setContentView()。使用任一

View webViewLayout = ((LayoutInflater)this.getSystemService(Context.LAYOUT_INFLATER_SERVICE))
        .inflate(R.layout.twitterfeed, null, false);
setContentView(webViewLayout);
WebView webView = (WebView) webViewLayout.findViewById(R.id.webView1);

或者更简单地让框架为你做通货膨胀:

setContentView(R.layout.twitterfeed);
WebView webView = (WebView) findViewById(R.id.webView1);
于 2013-09-09T16:44:39.617 回答
0
  • 您需要使用 ViewTreeObserver 来测量 webview 布局的宽度和高度。
  • ViewTreeObserver 触发它的全局布局监听器,并有它自己的线程来测量布局尺寸。

            webView.getViewTreeObserver().addOnGlobalLayoutListener(new OnGlobalLayoutListener()
        {
            @Override
            public void onGlobalLayout()
            {
                System.out.println("webView: " + webView.getWidth());
                System.out.println("webView: " + webView.getHeight());
            }
        });
    
于 2013-09-09T16:50:53.643 回答