2010-12-18 4 views
12

사용자 정의 배열 어댑터가 정의 된 webview 객체 목록 또는 사용자 정의 어댑터 및 HTML 내용으로 표시된 textview 객체 목록을 사용하는 것이 더 나은 성능의 이름으로 첫 번째는 webview를 사용하려고 시도하지만 webview 객체가 있다고 생각합니다. 무거운 UI 요소의 종류, textview 가벼운 것 같습니다.HTML 데이터가 포함 된 목록에서 WebView 또는 TextView를 사용하는 것은 어느 것입니까?

WebView entryWebView = (WebView) findViewById(R.id.entryWebView); 
       entryWebView.loadData("my hmtl formatted data", "text/html", "utf-8"); 

// 사용자 정의 배열 어댑터에 정의 웹뷰 가득 이러한

TextView entryTextView = (TextView) v.findViewById(R.id.entry); 
       entryTextView.setText("my html formatted data"); 

// 및 사용자 정의 배열 어댑터를 다시 한 객체와 텍스트 뷰 가득

답변

10

WebView하지 않는 개체를 가정 ListView의 자식으로 잘 작동합니다. WebViewListView 모두 스크롤하는 방법을 알고 있기 때문입니다. 따라서 TextView을 사용합니다. HTML을 Html.fromHtml()이 지원하는 태그로 제한하십시오. 다음은 Android 2.1의 list of supported tags이며 Android의 다른 버전은 아마도 유사 할 것입니다.

성능과 관련하여 TextView은 실제로 매우 가벼운 위젯이며 어떤 경우에도 더 우수한 성능을 발휘합니다. 그러나 Html.fromHtml() 출력을 캐시 할 수 있으므로 사용자가 스크롤 할 때 주어진 행에 대해 다시 수행 할 필요가 없습니다.

+0

예 WebView 또한 ListView와 함께 사용할 때 스크롤보기가 까다로워 질 수 있으며 TextView를 사용하기로 결정했기 때문에 HTML 출력 캐싱에 대한 세부 사항을 제공 할 수 있습니까? –

+1

@Burak Dede : Html.fromHtml()을 시간 지정하지 않았지만 빠르지 않을 수 있습니다. 사용자가 다시 스크롤하면 결과를 다시 사용할 수 있도록 통화 결과를 캐시 할 수 있습니다. 캐시 된 데이터에'SoftReferences'를 보유한 LRU 모드에서'LinkedHashMap'을 사용한다면 메모리가 부족하지 않도록 할 수 있습니다. – CommonsWare

+0

@CommonsWare : Dede와 비슷한 상황에서 TextView는 gif 애니메이션을 지원하지 않기 때문에 gif 애니메이션이 포함 된 HTML 데이터를 표시하는 가장 좋은 솔루션은 무엇입니까? – M2X

1

퍼포먼스 비교로 나는 두 가지 방법을 시도했지만 거대한 데이터가있는 WebView는 느리지 만 사용자 정의 어댑터는 사용자 인터페이스에 응답 할 때까지 그리기를 마칠 수 없었습니다. 텍스트 뷰는 성능이 매우 좋았습니다. 텍스트 내에서 html 작업을 많이해야하는 경우가 아니면 textview를 사용하는 것이 좋습니다.

관련 문제