显示空白片段的webview

时间:2016-07-11 13:50:58

标签: java android android-studio android-fragments navigation-drawer

我有3个片段,每个片段,我都希望显示不同网址的WebView

片段1的示例,在我添加的xml文件中:

<WebView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/webView"
    android:layout_alignParentTop="true"
    android:layout_alignParentStart="true"
    android:layout_alignParentBottom="true"
    android:layout_alignParentEnd="true" />

但是在我的java文件中我有这个:

package com.domain.app;


import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.webkit.WebView;


/**
 * A simple {@link Fragment} subclass.
 */
public class Fragment_Home extends Fragment {


    public Fragment_Home() {
        // Required empty public constructor
    }


    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        // Inflate the layout for this fragment
        return inflater.inflate(R.layout.fragment_home, container, false);

    }

}

我从另一个Android项目获得了以下代码:

     myWebView = (WebView)findViewById(R.id.webView);
     WebSettings webSettings = myWebView.getSettings();
     webSettings.setJavaScriptEnabled(true);
     myWebView.loadUrl("http://www.google.com");
     myWebView.setWebViewClient(new WebViewClient());

位于MainActivity,但如何将此代码放入我的片段?

1 个答案:

答案 0 :(得分:0)

由于您是在片段中执行此操作,因此您需要展开并引用您的webview所在的视图。因此,请将onCreate更改为:

WebView myWebView;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {

    //creating and referencing our View
    View view = inflater.inflate(R.layout.fragment_home,container,false);

    //The key difference is we reference our view with the findViewById
    myWebView = (WebView) view.findViewById(R.id.webView);
    WebSettings webSettings = myWebView.getSettings();
    webSettings.setJavaScriptEnabled(true);
    myWebView.loadUrl("http://www.google.com");
    myWebView.setWebViewClient(new WebViewClient());

    return view;
}

在这里,您可以看到我将其更改为实际引用您要从中提取的视图,从而可以更新该视图的组件。在操作片段的组件时,您始终需要引用父视图。