如何在Android的listview中实现webview?

时间:2014-04-09 16:38:36

标签: android listview webview

我正在尝试在listview中实现webview。但无法弄明白。

对不起基本问题。这是我的代码到目前为止的样子。

public class MainActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    ListView lv = (ListView)findViewById(R.id.listView2);
    ListAdapter adapter = new ListAdapter(this);

    lv.setAdapter(adapter);
}


@Override
public boolean onCreateOptionsMenu(Menu menu) {

    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.main, menu);
    return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    // Handle action bar item clicks here. The action bar will
    // automatically handle clicks on the Home/Up button, so long
    // as you specify a parent activity in AndroidManifest.xml.
    int id = item.getItemId();
    if (id == R.id.action_settings) {
        return true;
    }
    return super.onOptionsItemSelected(item);
}

}

这是我的xml部分:

<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="fill_parent"
android:layout_width="fill_parent"
android:orientation="vertical">

<ListView
    android:layout_height="fill_parent"
    android:id="@+id/listView2"
    android:layout_width="fill_parent"/>
</LinearLayout>

2 个答案:

答案 0 :(得分:3)

正如@Kevin所解释的那样,Webview可能是所有Android平台中最重量级的组件,这与人们通常对listview行组件的期望完全相反:轻量级和快速,平滑的秘密列表显示。

尝试另类设计。通常,我真的不鼓励人们制作混合应用程序,但我不想参加宗教战争。但是如果你真的想要一个webview,为什么不把你的列表放在你想要显示的html页面中。已经有一个webview实例以正确的方式运行,并且在所有Android设备和版本上都表现良好可能具有挑战性。这比其他方式容易得多。

答案 1 :(得分:1)

将webview置于线性布局或类似内容中,初始化时具有固定大小。然后如果你想,你可以稍后弄清楚内容的大小并调整webview的大小。

作为2016年的州。使用chrome webview组件,他们可以正常工作,几个应用就可以做到这一点。

你只需要妥善照顾它们。设置状态和内容以及所有这些,并正确调整它们的大小。

当有可能并且更可取时,“只是不这样做”并不是一个好的答案。具有多线程渲染等“缺点”的webview组件提供了几个android样式视图的优点,比如css,并且可能从服务器加载它,允许样式更改而无需重新部署。

也作为专业提示,不要从网络加载,只是直接从内存缓存将数据转储到webview。您还可以在列表中上/下预加载几个Web视图 - 或者在渲染后缓存为位图,如果它只是用于显示。

如果您可以在网页视图中禁用javascript,那就更好了。