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

  • alexis gillis

    alexis gilli

    23 HAZİRAN 2011
  • bmarian22

    bmarian22

    22 Aralık 2007
  • Fuse

    Fuse

    21 Kasım 2005