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(...);