SORU
25 Mart 2013, PAZARTESİ


En iyi uygulama Android iç içe geçmiş parçaları 4.0, 4.1 (&; 4.2 lt) destek kütüphane kullanmadan

4.0 ve 4.1 tablet için bir uygulama, yazıyorumDestek kitaplıkları kullanmak istemiyorum(eğer gerekli değil) ama 4.x sadece bu nedenle apı.

Benim hedef platform çok iyi olarak tanımlanmıştır: >= 4.0 ve <= 4.1

App çoklu pano düzeni (iki parça, bir soldaki küçük, sağdaki bir içerik parçası) ve bir eylem sekme çubuğu vardır.

Buna benzer:

enter image description here

Bir sekmesini tıklatarak eylem çubuğundaki 'dış' parçası ve iç bölümü, sonra da iç içe iki parça (1. ile bir parçası. Küçük Parça, 2 liste bıraktı. geniş içerik bölümü).

Şimdi en iyi uygulama parçaları değiştirmek için ne ve özellikle iç içe geçmiş parçaları merak ediyorum. Bu ViewPager yerli 4 var hiçbir destek kitaplığı, bir parçasıdır.bu sınıf için x alternatif. "Benim anlamda.itiraz görünür - http://developer.android.com/reference/android/support/v4/view/ViewPager.html

O zaman bu sürüm Android için iyi bir uyum olurdu ChildFragmentManager ile ilgili 4.2, notları okudum, ama bu da kullanılabilir mi 4.0 ve 4.1, yani hedef benim.

ChildFragmentManager 4.2 mevcuttur

Ne yazık ki, en iyi hatta tüm Android geliştirici kılavuzları, destek kütüphane olmadan parçaları kullanımlar; özellikle de hiçbir şey iç içe geçmiş parçaları ile ilgili uygulamaları gösteren neredeyse hiç iyi örnekler var.

Ben de merak ediyorum: sadece destek kitaplığı ve onunla birlikte gelen her şeyi kullanmadan iç içe geçmiş parçaları ile 4.1 uygulamalar yazmak mümkün değil mi? (Parça, vb yerine FragmentActivity kullanacak mısın?) Ya da en iyi yöntem ne olabilir?


Şu anda geliştirme yaşıyorum bu sorunu bu açıklama tam olarak ne:

Android Destekleme Kütüphanesi de artık iç içe geçmiş parçaları, yani destekler Android 1.6 üzerinde iç içe geçmiş parça tasarımlar uygulayabilir ve daha yüksek.

Not: bu düzeni veya bir parçasının içine bir düzen şişirmek içerir <fragment>. İç içe geçmiş parçaları yalnızca eklendiğinde desteklenir parça bir dinamik.

Görünen o ki, bir hata neden olan XML iç içe geçmiş parçaları, define koydum çünkü:

Caused by: java.lang.IllegalArgumentException: Binary XML file line #15: Duplicate id 0x7f090009, tag frgCustomerList, or parent id 0x7f090008 with another fragment for de.xyz.is.android.fragment.CustomerListFragment_

Şu anda kendim için özetliyorum: hatta 2 hedef istemediğim zaman 4.1, üzerinde bile.x platform, ekran gösterildiği gibi iç içe geçmiş parçaları destek kitaplığı olmadan mümkün değildir.

(Bu aslında bir soru daha wiki bir giriş daha fazla olabilir, ama belki bir başkası daha önce bunu başardı).

Güncelleme:

Yararlı bir cevap: Fragment Inside Fragment

CEVAP
16 HAZİRAN 2013, Pazar


Sınırlamalar

Başka bir parça içine yerleştirme parçaları xml ile mümkün bakılmaksızın değildir.

Üzerinden kod parçaları eklemek için, bu bir sorun gibi gözükebilir, ama uzun vadede yapar düzenleri superflexible.

Bu kadar iç içe getChildFragmentManger kullanmadan? childFragmentManager arkasındaki özü Önceki parça işlem bitinceye kadar yüklenme bu kadar erteledi. Ve tabii ki sadece doğal ya da destek kitaplığı 4.2 desteklendi.

ChildManager olmadan yerleştirme Çözüm

Çözüm, Elbette! Uzun zamandır bu şimdi ViewPager ilan edildi beri) yapıyorum.

Aşağıya bakın; Bu erteler Fragment yükleme, Fragments içinde yüklenebilir.

Onun oldukça basit, Handler gerçekten çok kullanışlı sınıf, etkili işleyicisi bekler için bir boşluk çalıştırmak için ana iş parçacığı sonra geçerli parça işlem var bitmiş yapılıyor (gibi parçaları engel UI çalıştırmak ana iş parçacığı).

// Remember this is an example, you will need to modify to work with your code
private final Handler handler = new Handler();
private Runnable runPager;

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
    return inflater.inflate(R.layout.frag_layout, container, false);
}

@Override
public void onActivityCreated(Bundle savedInstanceState)
{
    super.onActivityCreated(savedInstanceState);
    runPager = new Runnable() {

        @Override
        public void run()
        {
          getFragmentManager().beginTransaction().addFragment(R.id.frag_container, MyFragment.newInstance()).commit();
        }
    };
    handler.post(runPager);
}

/**
 * @see android.support.v4.app.Fragment#onPause()
 */
@Override
public void onPause()
{
    super.onPause();
    handler.removeCallbacks(runPager);
}

'En iyi uygulama', ama canlı uygulamalar bu hack kullanıyorum ve henüz herhangi bir sorun var benim. dikkate bile almam

Ben de - https://gist.github.com/chrisjenx/3405429 çağrı cihazları gömme görüntülemek için bu yöntemi kullanın

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Digital Bounds

    Digital Boun

    19 Temmuz 2013
  • The Bad Tutorials

    The Bad Tuto

    6 EKİM 2009
  • The Computer Chronicles

    The Computer

    7 Kasım 2012