2012-08-10 47 views
8

在android中,是否可以完全以编程方式从支持库创建GridLayout(即不写入相应的xml)?以编程方式从支持库创建GridLayout

创建我的一个片段(称为PromotionLayoutFragment)网格布局是这样的:

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

这当我使用目前的网格布局类API 14级工作正常,但是当我使用的网格布局从支持库(V7-R9),我得到:

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

你在Android Studio中工作了吗?我在预览窗口中看到相同的错误,并且我已将GridLayout支持库添加为Android库项目。 – 2013-09-30 22:37:38

回答

4

原来你需要包括GridLayout的支持库为Android库项目(apklib),而不是一个罐子。我正在使用maven Android SDK deployer,但目前有关于此的issue开放。

+1

该问题已被关闭 – 2012-12-15 12:13:36