Android 加载WebView可防止在布局中加载其他视图
我试图有一个布局,其中有一个网络视图和其他视图,如文本视图 从下面的代码中,我希望WebView显示在第一个300dp的高度上,TextView显示在屏幕底部,文本为“Test text” 现在,当运行将url加载到WebView中的代码时(使用下面的代码片段),WebView成功加载url,但是,其他视图将被忽略而不加载 有人能帮我在同一屏幕上加载WebView和其他视图吗 我试着在以下两者之间切换:Android 加载WebView可防止在布局中加载其他视图,android,layout,webview,load,render,Android,Layout,Webview,Load,Render,我试图有一个布局,其中有一个网络视图和其他视图,如文本视图 从下面的代码中,我希望WebView显示在第一个300dp的高度上,TextView显示在屏幕底部,文本为“Test text” 现在,当运行将url加载到WebView中的代码时(使用下面的代码片段),WebView成功加载url,但是,其他视图将被忽略而不加载 有人能帮我在同一屏幕上加载WebView和其他视图吗 我试着在以下两者之间切换: WebView webView = findViewById(R.id.temp_web_v
WebView webView = findViewById(R.id.temp_web_view);
及
而且
及
但到目前为止运气不好
SomeActivity.java
activity_profiling_result.xml
删除此
setContentView(webView);
// must call removeView() on the child's parent first.
if (webView.getParent() != null) {
// this will remove the webView from the customise layout
((ViewGroup)webView.getParent()).removeView(webView);
}
因为它将用webView
实例替换整个布局
setContentView(R.layout.activity\u profiling\u result)
附加并显示自定义布局(您的webView或textview等)
setContentView(网络视图)
附加并显示webView实例
将活动内容设置为显式视图。此视图已放置
直接进入活动的视图层次结构
。它本身可以是一个
复杂视图层次结构。调用此方法时,布局
将忽略指定视图的参数<代码>宽度和宽度
视图的高度默认设置为与父视图匹配。
使用您自己的
布局参数,调用setContentView(android.view.view,
而不是android.view.ViewGroup.LayoutParams)
删除这些代码,它会像你期望的那样工作 if(webView.getParent()!=null){ ((视图组)webView.getParent()).removeView(webView); } setContentView(网络视图) 您的最终代码应该是: @在创建时覆盖受保护的void(Bundle savedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.activity\u profiling\u result); WebView WebView=findviewbyd(R.id.temp\u web\u view); webView.getSettings().setJavaScriptEnabled(true); 字符串WEB_URL=“”; webView.loadUrl(WEB_URL);}
setContentView(网络视图);使用webView实例替换整个布局。但是,当我放置setContentView(R.layout.activity\u profiling\u result)时;它不加载任何内容。那一行后面只是一个空白页。.为什么要这样做
(webView.getParent()!=null)
?使用此((视图组)webView.getParent()).removeView(webView)代码>您正在从当前布局中删除webView,因此请将其删除,因为我在没有它的情况下遇到了以下错误:指定的子级已具有父级。必须首先对子级的父级调用removeView()。我删除了整个“setContentView()”行,现在它可以正常工作了。Google告诉我在示例中使用“setContentView()”,我使用了它,我发现了这个错误。。没有它,它工作得很好。。谢谢请你也看一下好吗?我昨天发布了这篇文章,但没有答案,也没有运气:(哇,没有setContentView(),它工作得非常好。我使用它是因为它看起来是必要的,根据:谢谢!
setContentView(webView);
setContentView(R.layout.activity_profiling_result);
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_profiling_result);
WebView webView = findViewById(R.id.temp_web_view);
// must call removeView() on the child's parent first.
if (webView.getParent() != null) {
((ViewGroup)webView.getParent()).removeView(webView);
}
setContentView(webView);
webView.getSettings().setJavaScriptEnabled(true);
String WEB_URL = "https://www.google.ca/";
webView.loadUrl(WEB_URL);
}
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<WebView
android:id="@+id/temp_web_view"
android:layout_width="match_parent"
android:layout_height="300dp" />
<TextView
android:id="@+id/temp_text_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:text="Test Text" />
</RelativeLayout>
setContentView(webView);
// must call removeView() on the child's parent first.
if (webView.getParent() != null) {
// this will remove the webView from the customise layout
((ViewGroup)webView.getParent()).removeView(webView);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_profiling_result);
WebView webView = findViewById(R.id.temp_web_view);
// must call removeView() on the child's parent first.
//if (webView.getParent() != null) {
//((ViewGroup)webView.getParent()).removeView(webView);
//}
//setContentView(webView);
webView.getSettings().setJavaScriptEnabled(true);
String WEB_URL = "https://www.google.ca/";
webView.loadUrl(WEB_URL);
}