2012-08-10 18 views
8

In Android, è possibile creare un GridLayout dalla libreria di supporto interamente a livello di codice (cioè senza scrivere il corrispondente xml)?Creazione di un GridLayout a livello di programmazione dalla libreria di supporto

Creo il mio GridLayout in un frammento (chiamato PromotionLayoutFragment) come questo:

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

Questo funziona bene quando uso la classe GridLayout presente nel livello di API 14, ma quando uso il GridLayout dalla libreria di supporto (v7-R9), ottengo:

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

Hai funzionato su Android Studio? Vedo lo stesso errore nella mia finestra di anteprima e ho aggiunto la libreria di supporto GridLayout come progetto di libreria Android. –

risposta

4

scopre che è necessario includere la libreria di supporto GridLayout come progetto libreria di Android (apklib), al posto di un vaso. Stavo usando il Maven Android SDK deployer, ma attualmente c'è uno issue aperto a riguardo.

+1

il problema è stato chiuso –

Problemi correlati