我正在尝试在片段中实现CordovaWebView(2.2.0),但在尝试给布局充气时它会返回错误。
我的xml:
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<org.apache.cordova.CordovaWebView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id = "@+id/mainView"/>
</FrameLayout>
我的onCreateView:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.cordovawebview, container); // <--- the error occurs here!
return v;
}
错误:
10-25 15:52:02.839:ERROR / AndroidRuntime(2878):致命 例外:主要 android.view.InflateException:二进制XML文件行#21:错误膨胀类org.apache.cordova.CordovaWebView NullPointerException CordovaWebView.java第691行
int id = getResources().getIdentifier("config", "xml", this.cordova.getActivity().getPackageName());
这里的资源似乎为空。
我已经检查了它,并且config.xml文件位于xml文件夹中。
我可以在FragmentActivity中实现它,但我需要它在片段中。
有什么想法吗?
提前致谢。
答案 0 :(得分:2)
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.cordovawebview, container, false); // <--- add false parameter
CordovaWebView webView = (CordovaWebView)v.findViewById(R.id.mainView);
return v;
}
答案 1 :(得分:1)
CordovaWebViews需要在片段所在的活动以及片段本身上创建。您可以创建自己的ContextWrapper并将其提供给您的inflater,以便为您执行此操作。
以下是有关如何执行此操作的分步指南:https://github.com/Adobe-Marketing-Cloud/app-sample-android-phonegap/wiki/Embed-Webview-in-Android-Fragment