我必须编写具有垂直可滚动行的tile和所有这些的应用程序 行水平可见。每个磁贴都是html + javascript内容。 所以我在HorizontalScrollView和里面添加了多个ListView ListView的BaseAdapter Iam绑定WebView的getView方法。 这是一个简单的方案:
HorizintalScrollView
LinearLayout
ListView1 - WebView1 WebView2.....WebView6 //getView { WebView.LoadUrl(html) } //using with ViewHolder and convertView asking for null
...
ListViewN - WebView....WebView
/LinearLayout
/HorizontalScrollview
每个WebView都在linearLayout中。 所以它看起来很好并且有效,但当ListView包含超过5个WebView时(300 x 300 dip) 在HorizontalScrollView上有多个ListView,当我尝试水平滚动时,所有WebView都会以白色开始闪烁(如重新加载但没有getView)。
但是当我使用一个ListView时一切正常。从某些时候应用程序崩溃。那又是什么原因? (在每个WebViw中我都会显示简单的交互式高亮显示html + javascripts图表)。我正在尝试使用ICS 4.0的华硕平板电脑 我们尝试在iOS上通过ScrollView上的30个WebViews执行此操作,没有任何问题,一切正常! 请解释为什么眨眼和崩溃应用程序。
答案 0 :(得分:1)
同样的问题与我有关。我试过这个解决了我的问题到更大的范围
public View getView(final int position, View convertView,
ViewGroup parent) {
final ViewHolder holder;
View vi = convertView;
if (convertView == null) {
vi = inflater.inflate(R.layout.book_reader_list_style, parent,
false);
holder = new ViewHolder();
holder.webView = (WebView) vi.findViewById(R.id.webView1);
holder.webView.setInitialScale(scaleWebView);
WebSettings webSettings = holder.webView.getSettings();
holder.webView.setVerticalScrollBarEnabled(false);
holder.webView.setHorizontalScrollBarEnabled(false);
holder.webView.setVisibility(View.VISIBLE);
webSettings.setLoadWithOverviewMode(true);
webSettings.setUseWideViewPort(false);
vi.setTag(holder);
} else {
holder = (ViewHolder) vi.getTag();
}
holder.webView.loadUrl((URLs.get(position)));
return vi;
}