Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/180.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android Listview与webview_Android_Android Listview_Android Webview - Fatal编程技术网

Android Listview与webview

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) {

我正在尝试创建一个包含Webview的ListView,但应用程序没有显示任何内容。 这是我的代码:

设置CustomAdapter的主要活动

    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或其他可滚动容器中时没有问题。