![]() |
|
İç içe görsel bileşenlerde kaydırma çakışması sorunu çözümü (Listbox, scrollbox) - Baskı Önizleme +- Delphi Can (https://www.delphican.com) +-- Forum: Delphi (https://www.delphican.com/forumdisplay.php?fid=3) +--- Forum: Mobil Platform - FireMonkey (FMX) (https://www.delphican.com/forumdisplay.php?fid=7) +--- Konu Başlığı: İç içe görsel bileşenlerde kaydırma çakışması sorunu çözümü (Listbox, scrollbox) (/showthread.php?tid=7828) |
İç içe görsel bileşenlerde kaydırma çakışması sorunu çözümü (Listbox, scrollbox) - Mr.X - 10-08-2024 Merhaba, Bir süredir başımı ağrıtan ve bundan ötürü defalarca farklı tasarımlar yapmak zorunda kaldığım bir problemin çözümünü sizlerle paylaşmak istiyorum. Mutlaka bir gün ihtiyacınız olacaktır. Örneğin form üzerine bir verticalScollBox eklediniz ve Align özelliğini client yaptınız. Daha sonra bu verticalScrollBox içerisine farklı listeler barındırmak ve göstermek üzere 5 tane listbox eklediniz. Bu listbox'ların align özellikleri top ve yükseklikleri 500 birim olsun. Böyle bir senaryoda listbox'lar mobil cihazlarda ekrana tamamen sığamayacağı için verticalscrollbox devreye girecektir ve aşağı doğru elimizdeki toplam gerekli olan yükseklik kadar bize alan yaratacaktır. Böylece ekrana tamamen sığmayan listbox'ları aşağı doğru kaydırarak görebilmiş olacağız. Fakat... Bu senaryo da bir problemimiz var. Yukarıdaki gibi bir işlemde hem listbox hem de verticalscrollbox'ımızın kaydırma işlevi olacağı için hangi zaman da hangi tetiklenme durumunda hangisinin kaydırma işlevi gerçekleşecek? Senaryoyu canlı olarak IOS ve Android cihazlarda test ettiğiniz de göreceksiniz ki listboxların'un içerisindeki item'lerden ötürü verticalscrollbox'un kaydırma işlevini yakalayamayacaksınız. Ya listbox'lara margin değeri verip sağ veya soldan uzaklaştıracak ve verticalscollbox'u oradan kaydıracaksınız ya da ekranınız da verticalscrollbox tamamen işlevsiz olarak yerini alacak. Windows üzerinde bu problem oluşmuyor. Sistem otomatik olarak hangisinde kaydırma işlevi yaptığımızı algılıyor ve o bileşen üzerinde kaydırma gerçekleşiyor. Ama mobil cihazlarda durum öyle değil. Sorunu çözmek için ise : Parent bileşenimiz ne ise onun içerisindeki tüm scroll işlevine sahip bileşenlerin properties sekmesinden Touch - InteractiveGestures - Pan seçeneğini false olarak ayarlayın. Böylece verticalscrollbox'ın işlevini yerine getirmesine yardımcı olacaktır. İç içe görsel bileşenlerde kaydırma çakışması sorunu çözümü (Listbox, scrollbox) - frmman - 11-08-2024 Teşekkürler yaşadığınız problemi tarif edip çözüm yönteminizi paylaştığınız için. |