Android Listview与webview
我正在尝试创建一个包含Webview的ListView,但应用程序没有显示任何内容。 这是我的代码: 设置CustomAdapter的主要活动Android Listview与webview,android,android-listview,android-webview,Android,Android Listview,Android Webview,我正在尝试创建一个包含Webview的ListView,但应用程序没有显示任何内容。 这是我的代码: 设置CustomAdapter的主要活动 public class Web_in_list1Activity extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) {
public class Web_in_list1Activity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
ListView lv = (ListView)findViewById(R.id.listView2);
ListViewAdapter adapter = new ListViewAdapter(this);
lv.setAdapter(adapter);
}
}
CustomAdapter的getView
这里我得到了ListView的布局,并存储了Webview的URL
public View getView(int arg0, View convertView, ViewGroup arg2) {
// TODO Auto-generated method stub
LayoutInflater inflater = context.getLayoutInflater();
convertView = inflater.inflate(R.layout.listitem, null);
WebView wv = (WebView)convertView.findViewById(R.id.webview);
wv.getSettings().setJavaScriptEnabled(true);
wv.loadUrl("http://www.google.com");
convertView.setTag(wv);
return convertView;
}
main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="fill_parent"
android:layout_width="fill_parent"
android:orientation="vertical">
<ListView
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="fill_parent"
android:id="@+id/listView2"
android:layout_width="fill_parent"/>
</LinearLayout>
listitem.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="fill_parent"
android:layout_width="fill_parent"
android:orientation="vertical">
<WebView
android:id="@+id/webview"
android:layout_width="fill_parent"
android:layout_height="fill_parent"/>
</LinearLayout>
关门!
使用SCROLLVIEW解决了这个问题
我正在尝试创建一个包含Webview的ListView
您无法可靠地将可滚动内容放在其他可滚动内容的内部。因此,您不能可靠地:
- 将
放在WebView
行中ListView
- 将
放在滚动视图
行中列表视图
- 将
放入WebView
ScrollView
- 将
放入列表视图
滚动视图
此外,
WebView
是一个非常重的小部件,它的设计不允许有大量的副本。请考虑使用<代码>文本视图> /代码>轻量级HTML渲染。 试试这个代码,它对我起作用。
public View getView(final int position, View view, ViewGroup parent) {
String Vurl = "your URL";
ViewHolder holder;
mHandler = new Handler();
if (view == null) {
holder = new ViewHolder();
view = mInflater.inflate(R.layout.listitem, null);
holder.browser = (WebView) view.findViewById(R.id.webview);
view.setTag(holder);
} else
holder = (ViewHolder) view.getTag();
holder.browser.getSettings().setJavaScriptEnabled(true);
holder.browser.getSettings().setPluginState(WebSettings.PluginState.ON);
holder.browser.loadUrl(Vurl);
holder.browser.setScrollBarStyle(View.SCROLLBARS_INSIDE_INSET);
return view;
}
class ViewHolder {
WebView browser;
}
}
我有一种感觉,这是一种更具创造性的电池放电方式D(但遗憾的是,我不明白为什么它在这里不起作用)哈哈,感觉不错:D不,说真的……我尝试创建一个网络视图,在其中我可以添加一个视图,该视图可以滚动显示网络视图的内容,所以我尝试创建一个带有标题的列表视图……另一个解决问题的方法?有人知道吗?请帮助。好的问题解决了…我使用了滚动视图!我认为滚动视图不是一个解决方案,如果有这么长的列表:)。因为ListView是为提高内存效率而设计的,所以列表项的视图只用于可见的列表项。GMail应用程序是如何做到这一点的?你是说他们根本没有任何本机控件吗@谜:你可能会考虑阅读与你联系的问题和答案,因为它回答了你的问题。@公共SWALWA:你对从性能的角度来看在新的回收视图中使用WebVIEW有什么看法?尽管WebView是重组件,但它们将是可重用的支架的一部分。@Chebyr:根据
WebView
中的内容和RecyclerView
的滚动方向,关于可滚动内容的问题可能仍然是一个问题。有关权重的问题将取决于可能可见或缓存的webview
数量。因此,例如,在webview
中使用(基于RecyclerView
的ViewPager
替换)可能是可以的,因为它们具有垂直滚动/滑动和少量webview
。一个包含大量webview
的垂直列表可能仍然是个麻烦,尽管.commonware解决方案可能在5年前就已经有效,但现在肯定不再有效了。我和许多其他人在将WebView嵌入ListView或其他可滚动容器中时没有问题。