我想做一个动画来浏览网页浏览量,为此,我使用viewflipper,当我用布局工作制作动画时,但是使用webview,它不起作用,我需要有经验的人的帮助,这是我的代码(我只复制存在问题的部分):
这是带布局的代码,效果很好:
vf = (ViewFlipper) findViewById(R.id.details);
LayoutInflater vi = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
int layouts[] = new int[] {R.layout.layout_page1, R.layout.layout_page2, R.layout.layout_page3};
for (int i=0; i<layouts.length; i++) {
View vw = vi.inflate(layouts[i], null);
vf.addView(vw);
}
以下是WebView的代码不起作用:
vf = (ViewFlipper) findViewById(R.id.details);
WebView MyWebView[] =new WebView[2];
MyWebView[0] = (WebView) findViewById(R.id.mproof);
MyWebView[0].setWebViewClient(new WebViewClient());
MyWebView[0].getSettings().setJavaScriptEnabled(true);
MyWebView[0].loadUrl("http://www.google.com");
MyWebView[1] = (WebView) findViewById(R.id.example);
MyWebView[1].setWebViewClient(new WebViewClient());
MyWebView[1].getSettings().setJavaScriptEnabled(true);
WebView[1].loadUrl("http://www.hotmail.com");
LayoutInflater vi = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
//int layouts[] = new int[] {R.layout.layout_page1, R.layout.layout_page2, R.layout.layout_page3};
for (int i=0; i<2; i++) {
vf.addView(MyWebView[i]);
}
调试器在“vf.addView(MyWebView[i]);
”之后停止
答案 0 :(得分:1)
在同一布局xml中添加两个webview,视图翻转器会导致一些问题。
在第一个示例中,您提供了从单独的布局文件中扩展视图,在第二个示例中,您使用findViewById()来获取视图,这意味着它们位于相同的布局xml中。问题很可能是2个网页浏览已经有了父母。
将webview放入自己的布局并对其进行充气。
LayoutInflater vi = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
MyWebView[0] = (WebView)vi.inflate(R.layout.webview,null);
MyWebView[1] = (WebView)vi.inflate(R.layout.webview,null);
for (int i=0; i<2; i++) {
vf.addView(MyWebView[i]);
}
修改强> 即使考虑到您的XML文件,问题也是一样的,即2个Web视图已经有了父文件。哪个是ViewFlipper,然后您尝试将它们再次添加到for循环中的ViewFlipper。
删除它应该可以解决您的问题:
for (int i=0; i<2; i++) {
vf.addView(MyWebView[i]);
}
或者将第一个解决方案与单独的xml文件一起用于webview。