Modern Android Widget Geliştirme

Nov 26 2020

Yıl 2020 ve iOS nihayet onlar için destek ekledikten sonra Widget'lar bir kez daha öfkeli. Ancak, Android Widget'ları 2012'den beri güncellenmemiş gibi görünüyor.

Gönderen Android docs :

RemoteViews nesnesi (ve sonuç olarak bir Uygulama Widget'ı) aşağıdaki düzen sınıflarını destekleyebilir:

  • Çerçeve Düzeni
  • Doğrusal Düzen
  • Göreli Düzen
  • GridLayout

Bu, ConstraintLayout, RecyclerView ve AndroidX olmadığı anlamına gelir. ListView'ın karanlık günlerine geri dönmek istemiyorum.

Android geliştirici sitesindeki belgeler, bugün hala Android Widget'ları geliştirmek için en iyi uygulama mı? Bir AndroidX dünyasında Widget yapma konusunda tecrübesi olan var mı? Deneyimi daha az acı verici hale getirmek için herhangi bir tür 3. taraf API var mı?

Yanıtlar

2 CommonsWare Nov 26 2020 at 14:26

Ancak, Android Widget'ları 2012'den beri güncellenmemiş gibi görünüyor.

Doğru.

ListView'ın karanlık günlerine geri dönmek istemiyorum.

Ummm ... pardon?

Android geliştirici sitesindeki belgeler, bugün hala Android Widget'ları geliştirmek için en iyi uygulama mı?

Uygulama widget'ları "en iyi uygulamalar" hakkında daha az ve daha çok belgelenen ve desteklenen protokol hakkındadır. Uygulama widget'larının, sonunda bir UI ile sonuçlanan süreçler arası bir iletişim (IPC) protokolü olduğunu unutmayın. Uygulamanız kullanıcı arayüzünü oluşturmuyor - ana ekran veya diğer uygulama widget ana bilgisayarı, genellikle AppWidgetHostve ilgili API'lerin yardımıyla .

Bu, ConstraintLayout, RecyclerView ve AndroidX olmadığı anlamına gelir.

Doğru. Sonuçta, ana ekranın bunlardan herhangi birine erişimi olup olmadığını veya hangi sürümde olduklarını vb. Bilmiyorsunuz.

Deneyimi daha az acı verici hale getirmek için herhangi bir üçüncü taraf API var mı?

Bu gerçekten mümkün değil. Uygulamanızın uygulama widget'larıyla çok az ilgisi var. "Ağır kaldırma" çerçevede ve daha az ölçüde ana ekrandır. Üçüncü taraf bir API bunu gerçekten değiştiremez.

Google'ın, yönlendirme başlatıcı geliştiricilerinin alternatif bir "uygulama widget'ı" biçimi olarak dilimleri desteklemeye başlamasını bekliyordum . Google dilimleri unutmuş gibi göründüğü için bu henüz gerçekleşmedi. Belki gelecekte Google, her türlü olasılığa kapı açan AndroidSurfaceControlViewHost 11'leri temel alan bir şeyler sunacak . Her iki durumda da, başlatıcı geliştiricilerin bu şeyleri desteklemek için değişiklikler yapmasını gerektirebilir ve bu da benimsenmeyi yavaşlatır.

Sınırlı widget ve kapsayıcı listesinin ötesinde bir kullanıcı arayüzü sunmak için yapabileceğiniz en yakın şey, kendi öğelerinizi a'ya dönüştürmek Bitmapve bunu bir ImageViewuygulama widget'ında göstermektir. Uygulama widget'ının tam boyutunu bilmediğiniz için bu biraz zorlaşır. Ve tabii ki bu, giriş seçeneklerini değiştirmez.