2013-08-13 25 views
6

Tôi có một chế độ xem danh sách bắt đầu với 50 mục và tôi muốn thêm nhiều hơn khi người dùng cuộn qua danh sách, nhưng trước khi chúng đến cuối danh sách. Tôi đã sử dụng thuộc tính atEnd để biết khi nào tôi ở cuối danh sách và thêm các mục khác tại thời điểm đó, nhưng tôi muốn bắt đầu thêm các mục mới khi tôi 50% - 75% thông qua danh sách, để người dùng ít có khả năng bị bỏ lại để chờ đợi nhiều dữ liệu hơnLàm cách nào để thêm nhiều mục vào ListView trước khi đến cuối danh sách trên ứng dụng BB10?

Trả lời

7

Bạn có thể sử dụng tín hiệu onFirstVisibleItemChanged để tìm hiểu xem bạn đang ở chế độ xem danh sách bao xa. Sử dụng firstvisibleitem và kích thước hiện tại của mô hình dữ liệu để có được vị trí hiện tại của bạn trong danh sách. Nếu vị trí đó nằm trong ranh giới bạn đặt (50% và 75% trong mã ví dụ của tôi) thì hãy chạy mã để thêm các mục khác vào mô hình dữ liệu.

Không đặt số chính xác vì tín hiệu có thể không nắm bắt chính xác 50% số lượng thông qua danh sách và bạn cũng nên giữ kiểm tra khi bạn nhấn vào cuối danh sách dưới dạng không an toàn trong trường hợp người dùng bay qua phạm vi bạn đã đặt.

ListView { 
dataModel: listDataModel 
objectName: "listView" 
attachedObjects: [ 

    ListScrollStateHandler { 
     property int position 
     id: scrollStateHandler 
     onScrollingChanged: { 

      if (atEnd) { 
       //code to run if you hit the end of the list 
      } 
     } 
     onFirstVisibleItemChanged: { 
      if (position < firstVisibleItem) { 
       console.log("Scrolling Down") 
       var size = listDataModel.size(); 
       var percent = firstVisibleItem/size * 100; 
       console.log("Percent: " + percent + "%"); 
       if (50 < percent < 75) { 
        //do stuff 
       } 
      } else if (position > firstVisibleItem) { 
       console.log("Scrolling Up"); 

      } 
      position = parseInt(firstVisibleItem); 
     } 
    } 
]} 
+0

Cảm ơn câu trả lời tuyệt vời! Tôi sẽ không bao giờ nghĩ về điều này một mình – krilovich

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