Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/223.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 加载WebView可防止在布局中加载其他视图_Android_Layout_Webview_Load_Render - Fatal编程技术网

Android 加载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显示在第一个300dp的高度上,TextView显示在屏幕底部,文本为“Test text”

现在,当运行将url加载到WebView中的代码时(使用下面的代码片段),WebView成功加载url,但是,其他视图将被忽略而不加载

有人能帮我在同一屏幕上加载WebView和其他视图吗

我试着在以下两者之间切换:

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);
}