2016-04-12 42 views
0

Android programlamasında yeni başlıyorum ve etkinlik parçası ilkesini anlamakta güçlük çekiyorum. Anladığım kadarıyla, parçalar "alt etkinlikler" gibi bir şeydir ve tek bir etkinlikte birden fazla parça ekleyebilirim, ancak herhangi bir Fragman içermeyen bir Etkinliğe de sahip olabilirim. "Niçin fragmanları kullanalım" sorusuna verilen cevaplar, tüm ağ üzerinde bulunabilir, ayrıca bu konuyla ilgili bir yığın taşma sorusu vardır. Ama sorum şu: Eğer parçaları kullanmanın avantajları varsa - neden o zaman aktiviteleri kullanıyorsun? Parçalar "daha iyi" ise ve bunları her yerde kullanabilmem gerekiyorsa, tüm Etkinlik sınıflarım boş olacak ve fragmanlar içeriği ekrana getirecek - bu en iyi uygulama mı?Parça ve Etkinlikle İlgili Sorun Sorun

Örneğin bir menü eklemek istiyorsam - Bunu yalnızca parçaya yerleştirebilirim, bu yüzden Activity sınıfında setHasOptionsMenu() eklemenin anlamı nedir?

Daha spesifik olmak gerekirse: Aktivitelere ne eklemeliyim ve parçalarda neler var?

Umarım benim problemimi anlarsınız.

+2

"Aktivitelere ne yazmalıyım ve parçalarda ne var?" - Bu, her Android programcısının bir App yazdıklarında sorması gereken bir sorudur. Gördüğünüz gibi Fragmanlar için ve onlarla ilgili görüşler vardır, bu yüzden cevaplar genellikle fikir temelli olacaktır. Fragmanları nerede kullanacağınızın klasik örnekleri, menü sistemlerinde, ViewPagers'larda vb. Olabilir. Bazı avantajlar barındırma etkinliğine bağlıdır, ancak kendi bağımsız yaşam döngülerine sahiptirler. Kişisel olarak her davayı bireysel olarak ele alın, For/Against kategorisine girmeyin - Mantıklı olduğunda bunları kullanın. –

cevap

4

Ama sorum şu: Parça kullanımında avantajlar varsa - neden aktiviteleri kullanıyorsunuz? Çünkü bir seçeneğiniz yok. Çünkü bir seçeneğiniz yok. Etkinlikler Android vakfının bir parçasıdır. Örneğin, bir başlatıcı simgesinin doğrudan bir fragmanı çağırması mümkün değildir.

Yani etkinlik sınıfında setHasOptionsMenu() öğesini eklemenin anlamı nedir? Birçok UI'de, herhangi bir parçayla hiçbir ilgisi olmayan işlem çubuğu öğeleri olacaktır: "Ayarlar", "Yardım", "Hakkında" vb. Bunlar aktivitede tanımlamak için mükemmeldir.

Ne tür faaliyetlerde bulunmalıyım ve parçalarda neler var?

Günün sonunda, derledikleri, çalıştığı ve güvenilir bir şekilde yapmak istediğiniz sürece, istediğiniz her şeyi yapabilirsiniz. Yaklaşımları kabaca parçaların etrafında üç "düşünce okuluna" bölebilirsin.

Basit olan, "fragmanlar tehlikelidir ve yok edilmeleri gerekir" dir. Alakalılar başka bir şey (ör., Square's Flow ve Mortar) alternatif olarak kullanacaklar.

Daha karmaşık olanı "yararlı olduklarını kanıtladıkları parçaları kullanırlar". "Yararlı", güzellik gibi tanımı, seyircinin gözünde yatmaktadır. ilgilenmek için daha küçük ekranlar için ViewPager

  • DialogFragment yılında
  • sayfaları uyarlanabilir kalırken daha büyük ekran boyutları daha iyi kullanılması için

    • ana/ayrıntı ve benzeri yapılar: Yani insanların için parçaları kullanmak göreceksiniz yapılandırma değişiklikleri ve diyaloglar
    • vb

    geçerli pozisyon düşüncenin üçüncü okuludur: "Fragments Über Alles".Bu ile "yararlı olanı" senaryosu arasındaki fark, onlar için açıkça tanımlanmış bir kullanımın olmadığı durumlarda bile fragmanları uygulamanızdır. Örneğin, tek Kullanıcı Arabirimi belgelerinizi gösteren gerçekten büyük bir WebView olan bir HelpActivity, 'un WebViewFragment'un bazı alt sınıflarını yönetmesine gerek duymaz. "Yararlı olan" insanların, net bir ihtiyaç ortaya çıkana kadar parçayı atlayacağı (örneğin, daha büyük ekranlardaki bir etkinlikte diğer içeriğin yan yana olması için yardım istersiniz) "Fragments Über Alles" taraftarları Her zaman WebViewFragment.

  • +0

    Teşekkürler! Bu açıklama bana çok yardımcı oldu :) –