2012-08-10 17 views
8

Android'de, destek kitaplığından tamamen programlı bir şekilde bir GridLayout (yani karşılık gelen xml yazmadan) oluşturmak mümkün mü?Destek kitaplığından bir GridLayout programlama yoluyla programlı olarak oluşturma

böyle (PromotionLayoutFragment denir) fragmanında benim GridLayout oluşturun: i API düzeyinde 14 mevcut GridLayout sınıfını kullandığınızda

ViewGroup fragmentView = (ViewGroup)getView(); 
GridLayout gridLayout = new GridLayout(fragmentView.getContext()); 
gridLayout.setColumnCount(2); 
gridLayout.setRowCount(15); 
// add views to grid ... 
fragmentView.addView(gridLayout); 

Bu iyi çalışır, ancak destek kitaplığından GridLayout kullandığınızda (v7-r9) i olsun:

08-10 15:54:52.209: ERROR/AndroidRuntime(14687): FATAL EXCEPTION: main 
    java.lang.NoClassDefFoundError: android.support.v7.gridlayout.R$dimen 
    at android.support.v7.widget.GridLayout.<init>(GridLayout.java:255) 
    at android.support.v7.widget.GridLayout.<init>(GridLayout.java:274) 
    at android.support.v7.widget.GridLayout.<init>(GridLayout.java:282) 
    at net.link.redbutton.fragment.PromotionLayoutFragment.showPromotions(PromotionLayoutFragment.java:168) 
    at net.link.redbutton.fragment.PromotionLayoutFragment.onImageResult(PromotionLayoutFragment.java:222) 
    at net.link.redbutton.fragment.SchedulerResponseFragment$1.onReceiveResult(SchedulerResponseFragment.java:37) 
    at android.os.ResultReceiver$MyRunnable.run(ResultReceiver.java:43) 
    at android.os.Handler.handleCallback(Handler.java:605) 
    at android.os.Handler.dispatchMessage(Handler.java:92) 
    at android.os.Looper.loop(Looper.java:137) 
    at android.app.ActivityThread.main(ActivityThread.java:4441) 
    at java.lang.reflect.Method.invokeNative(Native Method) 
    at java.lang.reflect.Method.invoke(Method.java:511) 
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551) 
    at dalvik.system.NativeStart.main(Native Method) 
+0

Bunu Android Studio'da çalışırken mi kazandınız? Önizleme penceremde aynı hatayı görüyorum ve bir Android kitaplığı projesi olarak eklenen GridLayout destek kütüphanesine sahibim. –

cevap

4

yerine kavanoz, bir Android kütüphane projesi (apklib) olarak GridLayout destek kütüphane dahil etmek gerektiğini ortaya çıktı. Menten Android SDK deployer kullanıyordum, ancak şu anda bunun için bir issue açık.

+1

sorun kapatıldı –

İlgili konular