SORU
23 Aralık 2011, Cuma


Android yerine Görünümlerde Parçaları kullanmanın yararı nedir?

Android, geliştirirken hedef (veya minimum) 4 (1.6 API) kümesi sdk ve android Uyumluluk Paketi (v4) Fragments desteği eklemek için ekleyebilirsiniz. Dün yaptım ve başarılı bir şekilde Fragments özel sınıf veri görselleştirmek için uygulanmaktadır.

Benim sorum şu: sadece özel bir nesneden bir Görünüm elde, ve hala API 1.5 destekleyen aksine Fragments kullanmanın faydası nedir?

Örneğin, sınıf foo.java de ki:

public class Foo extends Fragment {

    /** Title of the Foo object*/
    private String title;
    /** A description of Foo */
    private String message;

    /** Create a new Foo
     * @param title
     * @param message */
    public Foo(String title, String message) {
        this.title = title;
        this.message = message;
    }//Foo

    /** Retrieves the View to display (supports API 1.5. To use,
     * remove 'extends Fragment' from the class statement, along with
     * the method {@link #onCreateView(LayoutInflater, ViewGroup, Bundle)}) 
     * @param context Used for retrieving the inflater */
    public View getView(Context context) {
        LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        View v = inflater.inflate(R.layout.foo, null);
        TextView t = (TextView) v.findViewById(R.id.title);
        t.setText(this.title);
        TextView m = (TextView) v.findViewById(R.id.message);
        m.setText(this.message);
        return v;
    }//getView 

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        if (container == null) {
            return null;
        }
        View v = inflater.inflate(R.layout.foo, null);
        TextView t = (TextView) v.findViewById(R.id.title);
        t.setText(this.title);
        TextView m = (TextView) v.findViewById(R.id.message);
        m.setText(this.message);
        return v;
    }//onCreateView

}//Foo

Her iki yöntem de çok basit oluşturmak ve çalışmak için bir Etkinlik bu, diyelim ki, bir List<Foo> ekran (örneğin, Program aracılığıyla ekleme her bir ScrollView) Fragments gerçekten o kadar yararlı, ya da sadece aşırı abartılmış sadeleştirilmesi bir Görünüm, gibi yukarıdaki kod?

CEVAP
5 NİSAN 2013, Cuma


Parçaları kullanmak için ana nedeni backstack ve yaşam döngüsü özellikleri vardır. Aksi takdirde, özel görünümler daha hafif ve uygulaması kolay.

İlk başta, ben aslında telefon/tablet uygulaması özel görünümler kullanarak inşa etmeye çalıştı. Her şeyiortaya çıktıtelefonlar VE tabletler üzerinde çalışmak için, hatta bölmek için tek panelinden değiştirme masası. Sorunla karşılaştım geri düğmesi ve yaşam döngüsü. Sadece el ile görünümleri güncelleme yaşımdan beri...hiçbir görüş ve devletlerinin tarihini takip vardı. Bu nedenle, geri düğmesini beklendiği gibi işe yaramadı ve zor yaşam döngüsü olayları, app döndürürken gibi sırasında bile son durumu yeniden oluşturmak için. Bunu düzeltmek için, bir önceki Birleşik Devletleri kurtardı ve yeniden o parçaları özel görüşlerimi sarın ve FragmentManager kullanmak zorunda kaldım.

Benzer bir soru bir yıl önce ben yayınlanmıştır yanıtladıktan sonra fark ettim:http://stackoverflow.com/a/11126397/618881

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Living Waters

    Living Water

    9 AĞUSTOS 2006
  • Menglong Tav

    Menglong Tav

    18 Temmuz 2010
  • Tracy Hairston

    Tracy Hairst

    22 Mayıs 2009