在我的多标签应用程序中的一个片段中,我有一个不会显示任何内容的webview。我可能只是代码错了,所以这里是axml文件(fragment1.axml):
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:minWidth="25px"
android:minHeight="25px">
<android.webkit.WebView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@+id/webView" />
</LinearLayout>
这里是cs文件(fragment1.cs):
using Android.OS;
using Android.Support.V4.App;
using Android.Views;
using Android.Webkit;
namespace TabsApp.Fragments
{
public class Fragment1 : Fragment
{
public override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
// Create your fragment here
}
public static Fragment1 NewInstance()
{
var frag1 = new Fragment1 { Arguments = new Bundle() };
return frag1;
}
public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
var ignored = base.OnCreateView(inflater, container, savedInstanceState);
View v = inflater.Inflate(Resource.Layout.fragment1, container, false);
WebView webView = v.FindViewById<WebView>(Resource.Id.webView);
webView.LoadUrl("https://google.com");
webView.Settings.JavaScriptEnabled = true;
webView.SetWebViewClient(new WebViewClient());
return inflater.Inflate(Resource.Layout.fragment1, null);
}
}
}
其他内容(如文本视图)工作正常,因此应用程序的任何其他部分都没有任何问题,并且已启用(INTERNET)权限。
答案 0 :(得分:3)
这段代码:
public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
var ignored = base.OnCreateView(inflater, container, savedInstanceState);
View v = inflater.Inflate(Resource.Layout.fragment1, container, false);
WebView webView = v.FindViewById<WebView>(Resource.Id.webView);
webView.LoadUrl("https://google.com");
webView.Settings.JavaScriptEnabled = true;
webView.SetWebViewClient(new WebViewClient());
return inflater.Inflate(Resource.Layout.fragment1, null);
}
你能不能发现它有什么问题吗?
你给View
v
充气,你找到了你的WebView
并且做了什么。但是,在您返回的最后一行。你再次充气,无视你在那种方法中做过的任何其他事情。只需返回v
。
答案 1 :(得分:2)
return inflater.Inflate(Resource.Layout.fragment1,null);这行代码导致问题,因为您再次膨胀视图,您已经膨胀了 这里:查看v = inflater.Inflate(Resource.Layout.fragment1,container,false);
所以只返回v; 代替
返回inflater.Inflate(Resource.Layout.fragment1,null);