2013-01-16 8 views
5

Mọi thứ tôi đã đọc (SAU đã làm cho ứng dụng của tôi :() nói một cái gì đó như "bạn không bao giờ nên sử dụng một WebView bên trong một ScrollView!" .Điều này là dễ hiểu bởi vì về mặt lý thuyết bạn có thể di chuyển 2 thứ.WebView bên trong ScrollView dường như hoạt động tốt nhưng cảnh báo không sử dụng - thay thế?

Nhưng - cho đến nay, tôi đã nhìn thấy không có tác dụng phụ Sau đó, một lần nữa, mỗi WebView tôi đang sử dụng không đòi hỏi di chuyển -.? có lẽ đó làm cho nó có thể chấp nhận sử dụng mặc dù nó sai về mặt kỹ thuật

Are có tác dụng bất lợi nào mà tôi không nhận thấy do thiếu kiểm tra trên một phiên bản cụ thể không?

Nếu tôi không thể sử dụng WebView bên trong một ScrollView, làm cách nào tôi g et bố cục bên dưới (ứng dụng hiện tại của tôi):

LinearLayout 
    ScrollView 
     LinearLayout 
      TextView //Title of article 
      TextView //Subtitle of article 
      RelativeLayout 
       ImageView //Large Image (clickable to gallery) 
       ImageView //"more photos icon" 
      WebView // a small horizontal ad 
      TextView // actual article text 
      WebView //embedded HTML code ranging from iframe to video...etc 
      WebView //embedded HTML code ranging from iframe to video...etc 
      WebView // a small horizontal ad 
      LinearLayout 
       TextView //DB-driven "similar articles" list 
      WebView //disqus comments 

Lưu ý: Tôi nhận ra đó là "sai" - nhưng như vậy đang sử dụng <center> thẻ trong HTML, và mọi người vẫn sử dụng chúng mọi lúc một cách hiệu quả. Sự khác biệt có vẻ là có một lựa chọn dễ dàng và tốt hơn cho <center> - có điều gì đó tương tự cho trường hợp này trong Android không? Một cách đơn giản để có được những điều trên?

Trả lời

0

Không sử dụng WebView. Quảng cáo bạn có thể đính kèm vào ứng dụng hoặc sử dụng AdMob. Tới video là VideoView. Thay thế cho bình luận webview là làm api (sử dụng php [POST] và sql). Sử dụng chế độ xem web không phải là bắt buộc. Tôi hy vọng tôi đã giúp

+0

Admob dành riêng cho Google - chúng tôi không phân phát quảng cáo thông qua họ. Nhận xét qua Disqus, có mã HTML để triển khai. Tôi đánh giá cao thời gian của bạn, nhưng tôi không tin rằng đây là những gì tôi đang tìm kiếm. – Dave

4

Điều này là dễ hiểu bởi vì về mặt lý thuyết bạn có thể có 2 thao tác cuộn để có thể sử dụng được.

Cụ thể hơn, ScrollView là câm như một hộp đá và giả sử nó có toàn quyền kiểm soát cuộn.

Sau đó, một lần nữa, mỗi WebView Tôi đang sử dụng không đòi hỏi di chuyển

Chính xác hơn, nó không đòi hỏi di chuyển trên các thiết bị mà bạn đã được thử nghiệm, và cho nội dung mà bạn có thử nghiệm.

Ví dụ: chuỗi nhận xét DISQUS thường yêu cầu cuộn trên trình duyệt dành cho máy tính để bàn. Một tưởng tượng rằng sẽ có các chuỗi chú thích sẽ đủ dài để yêu cầu cuộn trên thiết bị di động, trừ khi bạn có thể sử dụng DISQUS được cuộn không có cuộn.

Nếu tôi không thể sử dụng một WebView bên trong một scrollview, làm thế nào tôi sẽ nhận được dưới đây bố trí (ứng dụng hiện tại của tôi):

Loại bỏ tất cả mọi thứ và có một đơn WebView, với HTML được tạo nội dung chứa tất cả nội dung trong cấu trúc hiện tại của bạn. IOW, làm những gì bạn sẽ làm trong một trang web.

+0

Khi tôi có ImageViews, thật dễ dàng để phát hiện nhấp chuột ... nếu chúng là HTML, tôi sẽ xử lý như thế nào? – Dave

+0

(mã disqus tôi đang sử dụng dường như không có cuộn, vì có nhiều nhận xét và vẫn không cuộn - mặc dù tôi vẫn thích ý tưởng sử dụng tất cả HTML được tạo - chỉ không chắc chắn về một số thứ như nhấp chuột hình ảnh ... vv) – Dave

+0

@Dave: "nếu chúng là HTML, tôi sẽ xử lý như thế nào?" - ummm ... 'onclick' thuộc tính, gọi ra các đối tượng Java được tiêm thông qua' addJavaScriptInterface() ', sẽ là nơi tôi bắt đầu. – CommonsWare

0

Đặt WebView trong ScrollView sẽ hoạt động miễn là WebView không thể cuộn nội bộ theo cùng một hướng như ScrollView.Làm cho WebView không di chuyển trong nội bộ có thể đạt được trong một vài cách sau:

  • chiều cao của WebView (giả sử các scrollview là cuộn theo chiều dọc) là wrap_content,
  • WebView có một kích thước cố định và các nội dung có bố trí phản ứng mà sẽ không bao giờ lớn hơn khung nhìn (cách khác là "overflow: hidden" có thể được sử dụng).

Tôi không nghĩ rằng các cách tiếp cận ở trên sẽ kết hợp tốt với chụm-thu nhỏ để bạn không nên bật điều đó.