2

我必须编写具有可垂直滚动的磁贴行的应用程序,并且所有这些行都是可水平滚动的。每个图块都是 html+javascript 内容。所以我在Horizo​​ntalScrollView 和ListView 的BaseAdapter Iam 绑定WebView 的getView 方法中添加了多个ListView。这是简单的方案:

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)并且在 Horizo​​ntalScrollView 有一个以上 ListView 时,所有 WebView 在我尝试滚动时开始闪烁(如重新加载但没有 getView)水平。

但是当我使用一个 ListView 时一切正常。从某些时候应用程序崩溃。那么是什么原因呢??(在每个 WebViw 中,我都展示了简单的交互式高亮 html+javascripts 图表)。我正在尝试使用 ICS 4.0 的 ASUS 平板电脑 我们尝试在 iOS 上通过 ScrollView 上的 30 个 WebView 执行此操作,没有任何问题,一切正常!请解释为什么闪烁和崩溃的应用程序。

4

1 回答 1

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;

    }
于 2013-01-09T07:34:32.677 回答