CrossWalk webview fragment 高度变低

一个activity里有四个fragment,通过底部四个tab按钮来切换fragment,第一个fragment是用原生代码实现,第二第三个fragment布局文件里有个webview布局,加载网页。由第一个fragment切换至第二个fragment时候会发现第二个webview加载完网页后高度变低,就是安卓机页面顶部黑色栏变高。

这个webview不是安卓自带的,是使用的crosswalk的XWalkviewInternal实现的。个人觉得在这里跟自带的webview一样解决方案。

解决方法就是在有webview的fragment的onCreateView方法里在加载网页之前重新设置一下webview的高度  代码如下

@Override
	public View onCreateView(LayoutInflater inflater, ViewGroup container,
			Bundle savedInstanceState) {
		ctx = this.getActivity();
		layout = inflater.inflate(R.layout.fragment_message, null);
		mXWalkView = (XWalkViewInternal) layout.findViewById(R.id.xwalkview);
		XWalkSettings webSettings = mXWalkView.getSettings();
		XWalkPreferences.setValue(XWalkPreferences.REMOTE_DEBUGGING, true);
		webSettings.setJavaScriptEnabled(true);
		Display display = ctx.getWindowManager().getDefaultDisplay();
		if (display.getHeight() < display.getWidth()) {
			screenHeight = display.getWidth();
			screenWidth = display.getHeight();
		} else {
			screenWidth = display.getWidth();
			screenHeight = display.getHeight();
		}
		mXWalkView.setLayoutParams(new LinearLayout.LayoutParams(screenWidth, screenHeight));
		mXWalkView.addJavascriptInterface(new JSInterface(mXWalkView, getActivity()),"JSBridge");
		mXWalkView.load(Contants.PrefixUrl+"message/list", null);
		return layout;
	}


你可能感兴趣的:(CrossWalk webview fragment 高度变低)