Böyle bir özelliği de uygulamayı düşündüm ama henüz yapmadım. Bu yüzden sağlayabileceğim tek şey, bu soruna I'un nasıl yaklaşacağına dair bazı fikirler. Sonunda bir kod yazmış olsaydım, onu buraya gönderirim.
- gereken ana sınıfı bir
ListAdapter
(ArrayAdapter, SimpleCursorAdapter vs.) uzanan özel bir adaptör olup.
- Bağdaştırıcı, tüm Görünümlerine bir View.OnTouchListener uygular.
- Bu dinleyici, yatay kaydırma
dx
'u algıladığında, concernedView.offsetLeftAndRight(dx)
'u çağırır (bu, görünümü sürüklenebilir hale getirir). Elbette adaptör, görünüm için mevcut yatay ofseti kaydetmelidir. Kullanıcı bir görünümü sürükleyip parmağını ekrandan kaldırırsa, touchListener bunu da algılayacak ve slayt geri animasyonunu başlatacaktır. Geçerli ofset kullanarak bir alfa değerini de hesaplayabiliriz, böylece ekran sınırlarına yaklaştığında görünüm kaybolur.
- Bir liste girdisi sonunda kullanıcı tarafından reddedilirse, bu biraz zor olur ve hala aşağıdaki eylemi nasıl uygulayacağımı bilmiyorum: Liste içeriği güncellenmelidir (veya bağdaştırıcının işten çıkarılan girişler) ve işten çıkarılanın altında kalan görüşler, boşluğu doldurmak için yukarı doğru çıkmalıdır. ListView'in yeni içeriği yüklemesine izin vermek için işe yarayabilir, ancak bu boşluğu anında doldurur. Bundan kaçınmak için, tüm ilgili görüntülerin eski konumlarından (hala boşluğa sahip olduğumuz yerden) mevcut konumlarına (boşluğun doldurulduğu yer) geri dönmesini sağlayan bir animasyon başlatırdım.
Bunlar, bazı kişilerin bu sorun üzerinde çalışmaya başlamasına yardımcı olabilecek bazı düşüncelerim. Dediğim gibi, muhtemelen bunu gelecekte de uygulayacağım ve elbette kodu buraya göndereceğim.
Yorumlarda herhangi bir geri bildirim için minnettarım, ama fikrimin her yönünü açıklamak istemiyorum, bu beni çok fazla zaman alacaktı;)
Bu bir başlangıç. Buna dayalı bir şeyler oluşturmaya çalışacağım ve başarılı olursam burayı güncelleyeceğim. – iamronak
Görünümü kaldırmadan önce, yüksekliği 0'a getirin. Bu, listenin güzel bir şekilde çökmesini sağlar. Daha sonra bir bildirim bir çırpma anahtarı olmayacaktır. – Hounshell