Listview с веб-просмотра - PullRequest
       33

Listview с веб-просмотра

3 голосов
/ 10 декабря 2011

Я пытаюсь создать ListView с WebView внутри, но приложение ничего не показывает. Вот мой код:

MainActivity, где я устанавливаю 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);

    }
    }

getView пользовательского адаптера Здесь я получаю Layout для ListView и добавляю URL для Webview

    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

Ответы [ 2 ]

19 голосов
/ 10 декабря 2011

я пытаюсь создать ListView с веб-представлением внутри

Вы не можете надежно поместить прокручиваемые объекты в другие прокручиваемые объекты.Следовательно, вы не можете надежно:

  • Поместить WebView в ListView строку
  • Поместить ScrollView в ListView строку
  • PutWebView в ScrollView
  • Поместите ListView в ScrollView

Более того, WebView является очень тяжелым виджетом и не предназначен дляесть много копий, плавающих вокруг.Пожалуйста, рассмотрите возможность использования TextView для облегченного рендеринга HTML.

0 голосов
/ 18 апреля 2013

Попробуйте этот код, у меня это сработало.

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;
    }
}
...