Share via


LinedFlowLayout.ItemsInfoRequested Kejadian

Definisi

Terjadi ketika LinedFlowLayout informasi ukuran kebutuhan untuk item di dalam dan di sekitar viewport pengguliran saat ini.

// Register
event_token ItemsInfoRequested(TypedEventHandler<LinedFlowLayout, LinedFlowLayoutItemsInfoRequestedEventArgs const&> const& handler) const;

// Revoke with event_token
void ItemsInfoRequested(event_token const* cookie) const;

// Revoke with event_revoker
LinedFlowLayout::ItemsInfoRequested_revoker ItemsInfoRequested(auto_revoke_t, TypedEventHandler<LinedFlowLayout, LinedFlowLayoutItemsInfoRequestedEventArgs const&> const& handler) const;
public event TypedEventHandler<LinedFlowLayout,LinedFlowLayoutItemsInfoRequestedEventArgs> ItemsInfoRequested;
function onItemsInfoRequested(eventArgs) { /* Your code */ }
linedFlowLayout.addEventListener("itemsinforequested", onItemsInfoRequested);
linedFlowLayout.removeEventListener("itemsinforequested", onItemsInfoRequested);
- or -
linedFlowLayout.onitemsinforequested = onItemsInfoRequested;
Public Custom Event ItemsInfoRequested As TypedEventHandler(Of LinedFlowLayout, LinedFlowLayoutItemsInfoRequestedEventArgs) 

Jenis Acara

Keterangan

Kejadian ini dimunculkan dengan argumen LinedFlowLayoutItemsInfoRequestedEventArgs , yang menyediakan detail tentang informasi ukuran item yang diminta.

Anda dapat memberikan informasi yang diminta untuk meningkatkan responsivitas antarmuka pengguna. Penanganan peristiwa ini bersifat opsional dan memengaruhi algoritma tata letak yang digunakan oleh LinedFlowLayout dengan cara berikut.

Tidak menangani kejadian ini, atau tidak memberikan informasi ukuran untuk rentang item yang diminta:

  • Rentang item yang bersebelahan dibuat. Secara default, item tersebut mengisi buffer hingga 5 viewport bergulir, berpusat di sekitar viewport yang saat ini terlihat. Semua item lainnya divirtualisasikan.
  • Hanya rentang item yang ditata. Item di luar rentang (item virtual) tidak memengaruhi tata letak.
  • Menggulir item (dan lebih umum, setiap tata letak lulus) memicu ItemsInfoRequested peristiwa dalam upaya untuk mengumpulkan informasi ukuran lagi.
  • Item yang baru dibuat digunakan untuk menghitung nilai rata-rata item per baris. Angka itu menentukan berapa banyak baris yang diperlukan untuk menampilkan seluruh koleksi, dan perkiraan lokasi setiap item.
  • Perubahan lebar hosting ItemsRepeater/ItemsView mungkin atau mungkin tidak memicu perubahan rata-rata item per baris. Semakin besar perubahan lebar tersebut, semakin besar kemungkinan item rata-rata per baris berubah.
  • Reflow lengkap item dilakukan ketika item rata-rata per baris tersebut mengevaluasi ke nilai baru karena alasan apa pun.
  • Jumlah item yang dibuat dan ditata dalam buffer (hingga 5 viewport pengguliran) diberlakukan secara ketat oleh item rata-rata komputasi per baris.

Memberikan informasi ukuran persis untuk rentang item yang diminta:

Menghasilkan karakteristik yang sama dengan kasus pertama, kecuali:

  • Hanya hingga 3 item senilai viewport bergulir yang dibuat, bukan 5. Lebih sedikit item yang dibuat diterjemahkan ke dalam peningkatan performa. Dengan demikian disarankan untuk menangani ItemsInfoRequested peristiwa dan memberikan informasi ukuran setidaknya untuk rentang yang diminta, yang mencakup hingga 5 viewport bergulir.
  • Item rata-rata per baris dihitung berdasarkan informasi ukuran yang disediakan dan bukan ukuran item yang dibuat yang diinginkan.
  • Menggulir item memicu ItemsInfoRequested peristiwa untuk mengumpulkan informasi ukuran untuk buffer (hingga 5 viewport pengguliran) yang berpusat di sekitar viewport baru yang terlihat.

Memberikan informasi ukuran untuk rentang item yang lebih besar dari yang diminta:

Menghasilkan karakteristik yang sama dengan kasus pertama, kecuali:

  • Karena informasi ukuran disediakan untuk superset rentang item yang diminta, pengguliran tidak selalu menaikkan ItemsInfoRequested peristiwa. Selama 5 viewport gulir yang berpusat di sekitar viewport yang terlihat berada dalam ukuran yang diketahui, ItemsInfoRequested tidak perlu dinaikkan.
  • Semakin besar rentang item informasi ukuran yang disediakan oleh ItemsInfoRequested penanganan aktivitas, semakin sedikit kemunculannya. Ini meningkatkan performa keseluruhan.

Memberikan informasi ukuran untuk seluruh koleksi item:

Kasus ini menghasilkan karakteristik yang sangat berbeda dari 3 kasus sebelumnya:

  • Hingga 3 item bernilai viewport pengguliran dibuat.
  • Persegi panjang pembatas dievaluasi untuk semua item, baik dibuat atau divirtualisasikan. Ini memanfaatkan sepenuhnya informasi ukuran yang disediakan untuk seluruh koleksi.
  • Tidak ada penegakan tentang berapa banyak item yang ditata di sekitar viewport yang terlihat. Tidak dibatasi untuk memenuhi item rata-rata per baris dapat mengakibatkan lebih sedikit pemotongan item. Jumlah total baris juga tidak diberlakukan oleh item rata-rata per baris.
  • Menggulir item tidak pernah memicu ItemsInfoRequested peristiwa karena tidak ada informasi ukuran tambahan yang perlu diambil. Namun, peristiwa dapat dipicu oleh panggilan ke InvalidateItemsInfo metode .
  • Perubahan lebar hosting ItemsRepeater/ItemsView selalu memicu reflow item.

Berlaku untuk