Dinamik listeyi özelleştirme Android Jetpack'in bir parçasıdır.
Özelleştirilebilir
RecyclerView
.
karşılayabileceksiniz. Aşağıda açıklanan standart sınıflar,
Google Analytics 4 ile
RecyclerView, çoğu geliştiricinin ihtiyaç duyduğu tüm işlevleri sunar. İçinde
çoğu durumda, görünümü yalnızca her görünüm sahibi için tasarlamanız ve
kullanarak bu görünümleri uygun verilerle güncelleyebilirsiniz. Ancak uygulamanızda
standart davranışı çeşitli yöntemlerle değiştirebilirsiniz.
Bu dokümanda, olası özelleştirmelerin bazıları açıklanmaktadır.
Düzeni değiştirme
RecyclerView
, kişiyi konumlandırmak için bir düzen yöneticisi kullanır
artık kullanılmayan öğe görünümlerinin ne zaman yeniden kullanılacağını belirlemek için
kullanıcıya görünür olduğundan emin olun. Bir görünümü veya düzeni yeniden kullanmak veya geri dönüştürmek için
yönetici, adaptörden görünümün içeriğini bir
farklı bir öğe oluşturur. Bu şekilde geri dönüşüm görünümleri
veya performans artışı sağlayarak gereksiz görüntülemeler oluşturmamasını
pahalı
findViewById()
.
bir aramadır. Android Destek Kitaplığı üç standart düzen yöneticisi içerir.
Bu yapılandırmaların çoğu, birçok özelleştirme seçeneği sunar:
LinearLayoutManager
: öğeleri tek boyutlu bir listede düzenler. BirLinearLayoutManager
ileRecyclerView
, gibi işlevleri kullanarakListView
kullanır.GridLayoutManager
: iki boyutlu bir ızgarada (ör. bir düzlemdeki kareler) dama tahtası.RecyclerView
kullanarakGridLayoutManager
, aşağıdaki gibi işlevler sunar:GridView
kullanır.StaggeredGridLayoutManager
: her bir sütun biraz uzaklığa sahip olacak şekilde öğeleri iki boyutlu bir ızgarada düzenler örneğin Amerikan bayrağındaki yıldızlar gibi.
Bu düzen yöneticileri ihtiyaçlarınızı karşılamıyorsa aşağıdakileri yaparak kendi düzen yöneticilerinizi oluşturabilirsiniz:
uzatmanın
RecyclerView.LayoutManager
.
soyut sınıf.
Öğe animasyonları ekle
Bir öğe değiştiğinde RecyclerView
, bir animatör kullanır
simgesini tıklayın. Bu animatör, soyut çizimi genişleten bir nesne
RecyclerView.ItemAnimator
.
sınıfını kullanır. Varsayılan olarak, RecyclerView
DefaultItemAnimator
animasyon sağlar. Özel animasyonlar sağlamak isterseniz
kendi animatör nesnenizi tanımlamak için
RecyclerView.ItemAnimator
Liste öğesi seçimini etkinleştir
İlgili içeriği oluşturmak için kullanılan
recyclerview-selection
kitaplık, kullanıcıların dokunma işlemini kullanarak RecyclerView
listesindeki öğeleri seçmesine olanak tanır
veya fare girişi kullanılabilir. Bu sayede, bir sayfanın görsel sunumu üzerinde kontrol sahibi olmaya
öğe seçildi. Seçimi denetleyen politikalar üzerinde kontrol sahibi de olabilirsiniz
hangi öğelerin seçilmeye uygun olduğu ve kaç öğenin
seçili olmalıdır.
Bir RecyclerView
örneğine seçim desteği eklemek için şu adımları uygulayın:
şu adımları uygulayın:
- Hangi seçim anahtarı türünün kullanılacağını belirleyin, ardından bir anahtar
ItemKeyProvider
.Seçilen öğeleri tanımlamak için kullanabileceğiniz üç anahtar türü vardır:
Parcelable
. ve alt sınıfları (örneğin,Uri
String
Long
Seçim tuşu türleri hakkında ayrıntılı bilgi için bkz.
SelectionTracker.Builder
- Uygulama
ItemDetailsLookup
- Öğeyi güncelle
View
nesne kullanıcının seçimlerini veya tercihlerini belirtmek içinRecyclerView
bunların seçimini kaldırır.Seçim kitaplığı, şu öğe için varsayılan bir görsel dekorasyon sağlamaz: öğe seçildi. Projeniz sırasında
onBindViewHolder()
Aşağıdaki yaklaşımı kullanmanızı öneririz:onBindViewHolder()
içinde şu numarayı arayın:setActivated()
- değilsetSelected()
- açıkView
nesnesi Öğenin olup olmadığına bağlı olaraktrue
veyafalse
seçili olduğundan emin olun.- Görünümün stilini, etkin durumunu gösterecek şekilde güncelleyin. Biz şunu kullanmanızı öneririz: renk durumu listesi kaynağı ekleyin.
ActionMode
hesabını kullan kullanıcıya seçimle ilgili bir işlem yapması için araçlar sağlamak üzere.- Yorumlanan ikincil işlemleri gerçekleştirin.
- Tüm parçaları
SelectionTracker.Builder
ile birleştirin. - Seçimi etkinlik yaşam döngüsü olayları için geçerlidir.
ItemDetailsLookup
, seçim kitaplığının erişmesine izin verir
RecyclerView
öğeyle ilgili bilgi verilen
MotionEvent
.
Bu şekilde verimli bir şekilde
ItemDetails
yedeklenen veya oluşturulan bir veri deposundan
RecyclerView.ViewHolder
örneğidir.
Bir
SelectionTracker.SelectionObserver
.
bilgilendirileceksiniz. Bir seçim ilk oluşturulduğunda,
bunu kullanıcıya göstermek ve sağlamak için ActionMode
işlemini başlat
seçime özgü işlemlerdir. Örneğin,
Temizlemek için ActionMode
çubuğunu kullanın ve çubuktaki geri okunu bağlayın
seçim. Seçim boş hale geldiğinde (kullanıcı,
seçimin son zamanını girin. İşlem modunu sonlandırın.
Etkinlik işleme ardışık düzeninin sonunda kitaplık,
kullanıcının bir öğeyi dokunarak etkinleştirmeye çalıştığını veya
bir öğe veya seçili öğeler kümesi sürüklemeye çalışıyor. Bunlara tepki ver
uygun dinleyiciyi kaydederek
yorumlarsınız. Daha fazla
bkz.
SelectionTracker.Builder
Aşağıdaki örnekte bu parçaların nasıl bir araya getirileceği gösterilmektedir:
Kotlin
var tracker = SelectionTracker.Builder( "my-selection-id", recyclerView, StableIdKeyProvider(recyclerView), MyDetailsLookup(recyclerView), StorageStrategy.createLongStorage()) .withOnItemActivatedListener(myItemActivatedListener) .build()
Java
SelectionTracker tracker = new SelectionTracker.Builder<>( "my-selection-id", recyclerView, new StableIdKeyProvider(recyclerView), new MyDetailsLookup(recyclerView), StorageStrategy.createLongStorage()) .withOnItemActivatedListener(myItemActivatedListener) .build();
Bir
SelectionTracker
.
Örneğin, uygulamanız aynı
RecyclerView.Adapter
ilk kullanıma hazırlamak için (RecyclerView
)
SelectionTracker.Builder
. Bu nedenle,
SelectionTracker
örneği, şunu ekleyin:
RecyclerView.Adapter
. Aksi takdirde, öğelerin
onBindViewHolder()
yönteminden seçilen durum.
Uygulama yaşam döngüsü etkinlikleri boyunca seçim durumunu korumak için uygulamanız
seçim izleyicinin
onSaveInstanceState()
.
ve
onRestoreInstanceState()
etkinlik yöntemlerinden
yararlanarak
onSaveInstanceState()
ve
onRestoreInstanceState()
yöntemlerine bakalım. Uygulamanız ayrıca
SelectionTracker.Builder
oluşturucu. Bu kimlik gereklidir çünkü
bir etkinlik veya parçanın birden fazla ayrı, seçilebilir listesi olabilir,
ve bunların hepsinin kayıtlı durumunda kalması gerekir.
Ek kaynaklar
Daha fazla bilgi için aşağıdaki referanslara bakın.
- Yayçiçeği
demo uygulaması:
RecyclerView
. - Kullanım alanları RecyclerView'u kullanarak kaydırılabilir liste kodu görüntüleyin.
- Android Kotlin ile İlgili Temel Bilgiler: RecyclerView temel bilgileri codelab'i.