2012-08-10 41 views
8

Trong android, có thể tạo GridLayout từ thư viện hỗ trợ hoàn toàn theo chương trình (tức là không viết xml tương ứng) không?Lập trình tạo GridLayout từ thư viện hỗ trợ

tôi tạo GridLayout của tôi trong một đoạn (gọi tắt là PromotionLayoutFragment) như thế này:

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

này hoạt động tốt khi tôi sử dụng lớp GridLayout có mặt trong mức API 14, nhưng khi tôi sử dụng GridLayout từ thư viện hỗ trợ (v7-r9), tôi nhận được:

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

Bạn đã làm việc này trong Android Studio chưa? Tôi thấy cùng một lỗi trong cửa sổ xem trước của tôi và tôi có thư viện hỗ trợ GridLayout được thêm vào như một dự án thư viện Android. –

Trả lời

4

Hóa ra rằng bạn cần phải bao gồm các thư viện hỗ trợ GridLayout như một dự án thư viện Android (apklib), thay vì một jar. Tôi đã sử dụng maven Android SDK deployer nhưng hiện tại đang mở một số issue về việc này.

+1

sự cố đã bị đóng –

Các vấn đề liên quan