2012-08-10 9 views
8

En android, ¿es posible crear un GridLayout desde la biblioteca de soporte por completo mediante programación (es decir, sin escribir el xml correspondiente)?Creación mediante programación de un GridLayout desde la biblioteca de soporte

Creo mi GridLayout en un fragmento (denominado PromotionLayoutFragment) así:

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

Esto funciona bien cuando se utiliza la clase GridLayout presente en el nivel API 14, pero cuando se utiliza el GridLayout de la biblioteca de soporte (v7-r9), me sale:

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

¿Has conseguido esto funcionando en Android Studio? Veo el mismo error en mi ventana de vista previa y tengo la biblioteca de soporte de GridLayout agregada como un proyecto de biblioteca de Android. –

Respuesta

4

Resulta que necesita incluir la biblioteca de soporte GridLayout como un proyecto de biblioteca de Android (apklib), en lugar de un frasco. Estaba usando el maven Android SDK deployer, pero actualmente hay un issue abierto con respecto a esto.

+1

el problema ha sido cerrado –

Cuestiones relacionadas