2010-08-14 22 views
16

Tôi đang viết một chế độ xem ngang, tương tự như những gì bạn biết về các hệ thống dạng tivo và tương tự. Đối với mỗi kênh có một hàng với các chương trình trong 6 giờ tiếp theo hoặc lâu hơn, với chiều rộng tỷ lệ thuận với thời gian chơi của chúng.ListView vs LinearLayout

Ý tưởng của tôi là viết một tiện ích tùy chỉnh cho mỗi hàng và xếp chồng lên nhau. Điều này sẽ cho phép tôi tải dữ liệu gia tăng, thay vì sử dụng một chế độ xem tùy chỉnh lớn. Tuy nhiên, tôi vẫn sẽ cần các nút chuyển tiếp/lùi lại ở đầu trang cập nhật tất cả các hàng khi được nhấp.

Bây giờ tôi không chắc liệu tôi có nên đặt các Chế độ xem này trong một ListView hoặc LinearLayout hay không.

tôi đã thu thập được những ưu sau và nhược điểm:

  • ListView
    • Ưu
      • Memory hiệu quả - tái chế Lần ẩn
      • vẻ được sử dụng bởi tất cả mọi người, trong Android cộng đồng, cho bất cứ điều gì.
      • Nó có thể dễ dàng hơn để làm cho nó lười biếng, khi cập nhật các hàng, và do đó đòi hỏi ít CPU hơn.
    • Nhược điểm
      • Overkill - Tôi sẽ không được sử dụng hầu hết các tính năng nó có thể cung cấp
      • Nó có thể là một chút khó khăn hơn để gắn clickListeners.
  • LinearLayout
    • Ưu
      • đơn giản để sử dụng. Có những gì bạn mong đợi.
    • Nhược điểm
      • Tôi đã không nhìn thấy nó được sử dụng bất cứ nơi nào cho danh sách dài.
      • Có lẽ nó chậm hơn?

Các "Có vẻ được sử dụng bởi tất cả mọi người" lập luận cho ListView cũng bao gồm các "Master" Twitter ứng dụng, mà Google sử dụng để khoe "thiết kế Android tốt". Họ cũng dường như không sử dụng hầu hết các tính năng của nó.

Bạn có kinh nghiệm gì về loại công việc này không? Có bất kỳ khuyến nghị nào tôi đã bỏ lỡ khi đọc qua tài liệu không?

+0

đơn giản của nó để hiểu, Bố cục có thể giữ chế độ xem nhưng chế độ xem không thể giữ bố cục. Vì vậy, hãy suy nghĩ và sử dụng theo sự cần thiết của bạn. –

+0

Tôi cũng quan tâm đến việc cắt giảm giao dịch. Tôi đã triển khai chế độ xem trực tiếp tất cả dữ liệu cảm biến trong cả LinearLayout và ListView (Nexus 4). ListView chậm hơn đáng kể với các bản cập nhật màn hình giới hạn ở mỗi 200ms. Lưu ý rằng tôi đã sử dụng một ExpandableListView và không sử dụng adapter.onDataSetChanged(), nhưng chỉ thay đổi TextViews có liên quan. –

+0

câu hỏi thú vị – Fattie

Trả lời

1

Tôi đã sử dụng tiện ích tùy chỉnh. Tôi vẫn chưa biết cái nào được đề cập là hiệu quả nhất.

2

Lịch biểu đó trông tương tự như ứng dụng Google IO 2010. Bạn có thể checkout mã của họ và xem cách họ đã thực hiện.

+1

Cảm ơn lời khuyên. Một ứng dụng tuyệt vời để học hỏi. Tuy nhiên, chế độ xem lịch biểu trong ứng dụng theo chiều dọc thay vì nằm ngang và xây dựng như một bố cục tùy chỉnh lớn. Nó cũng không phải hỗ trợ nhiều mục. Vì vậy nó không thực sự giúp tôi với vấn đề quyết định chung của tôi. –

Các vấn đề liên quan