Android 无法创建网络视图

Android 无法创建网络视图,android,layout,webview,Android,Layout,Webview,嘿,伙计们,我有个小问题,我想用代码创建一个网络视图。 这是我想用的代码 WebView WVakten = new WebView(MainActivity.this); WVakten.setLayoutParams(new LayoutParams(LinearLayout.LayoutParams.FILL_PARENT, LinearLayout.LayoutParams.FILL_PARENT)); WVakten.se

嘿,伙计们,我有个小问题,我想用代码创建一个网络视图。 这是我想用的代码

WebView WVakten = new WebView(MainActivity.this);
                WVakten.setLayoutParams(new LayoutParams(LinearLayout.LayoutParams.FILL_PARENT, LinearLayout.LayoutParams.FILL_PARENT));
                WVakten.setVisibility(View.VISIBLE);
                WVakten.getSettings().setJavaScriptEnabled(true);
                WVakten.getSettings().setBuiltInZoomControls(true);
                WVakten.getSettings().setDefaultZoom(WebSettings.ZoomDensity.CLOSE);
                WVakten.loadUrl("http://www.google.de");
                WVakten.setWebViewClient(new WebViewClient(){
                    public boolean shouldOverrideUrlLoading(WebView view, String url) {
                        if (url != null && url.startsWith("http://")) {
                            view.getContext().startActivity(
                                new Intent(Intent.ACTION_VIEW, Uri.parse(url)));
                            return true;
                        } else {
                            return false;
                        }}});
但当我尝试启动应用程序时,我只得到以下错误:

08-10 19:03:10.560:W/webcore(7134):在第一次布局后无法获取viewWidth


但是我不明白为什么会出现这个错误。

解决这个问题的最简单方法是在xml文件中创建一个布局,然后将webview添加到onCreate中的布局中

例如:

<LinearLayout 
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:weightSum ="1.0"
android:layout_width="match_parent" android:layout_height="match_parent">    

<fragment
    android:id="@+id/article"
    android:layout_width="match_parent"
    android:layout_height="0px"
    android:layout_weight="0.90"
    class="nieuws.com.ArticleFragment" />
</LinearLayout>
希望这有帮助


Jasper

我认为您要么没有设置内容视图,要么没有将
WebV
在此处输入代码
iew
添加到主布局中。 如果Webview没有周围的布局,则在onCreate()中的代码末尾添加:

在这种情况下,不需要LayoutParams

如果已将内容视图设置为布局,则需要获取该布局的引用并添加视图:

LinearLayout yourLayout = findViewById(R.id.something);
yourLayout.addView(WVakten);
在这种情况下,LayoutParams是必需的,并且必须是父布局的类型。因此,如果您的
WebView
被线性布局包围,则必须使用

LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(...);

也许这可以给你一些答案:你在哪里创建视图?onCreate()-这是你应该做所有常规静态设置的地方:创建视图,将数据绑定到列表,等等。
LinearLayout yourLayout = findViewById(R.id.something);
yourLayout.addView(WVakten);
LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(...);