2012-02-07 39 views
10

Tôi thực sự muốn làm việc này, nhưng tôi cảm thấy như tôi đã lúng túng trong nhiều giờ. Tôi đang bắt đầu một ứng dụng mới và muốn cố gắng làm theo hướng dẫn UI gần nhất có thể, cho bất kỳ thứ gì bên dưới bánh sandwich kem có nghĩa là tôi cần sử dụng ActionBarSherlock. Nhìn vào ví dụ here có vẻ như nó phải đơn giản.Sự cố khi triển khai các tab trong ActionBarSherlock 4

Tôi cố gắng triển khai và nó không hoạt động vì FragmentActivity không có phương thức getSupportActionBar().

Hãy xem demo app và có vẻ như họ không sử dụng FragmentActivity, họ sử dụng SherlockActivity. Vâng, SherlockActivity có một phương thức getSupportActionBar(), vì vậy nó rất hứa hẹn. Tiếp tục với ví dụ trong một thời gian ...

OK, bây giờ có vẻ như com.actionbarsherlock.app.ActionBar.TabListener không chuyển FragmentTransaction cho các sự kiện của nó? Không chỉ vậy, nhưng SherlockActivity không có phương thức getSupportFragmentManager() ...

Tôi (hy vọng) chỉ làm điều gì đó hoàn toàn sai? Làm thế nào để tôi tiếp tục gặp phải tất cả những vấn đề này mà không ai khác? Tôi cảm thấy như tôi sẽ đến đây. Vấn đề duy nhất có khả năng liên quan tôi đã tìm thấy là here và nó không phải là rất hữu ích.

+0

Bạn có đang sử dụng thư viện hỗ trợ để hỗ trợ các đoạn không? Hay bạn đang nhắm đến Honeycomb và ở trên? – Kekoa

+0

Thư viện hỗ trợ. Tôi tin rằng kế hoạch là API 7 trở lên. – zeonic

Trả lời

27

Bạn cần mở rộng từ SherlockFragmentActivity thay vì chỉ SherlockActivity hoặc SherlockFragment. Bằng cách này, bạn sẽ có quyền truy cập vào ABS và Hỗ trợ Fragment.

+2

Theo tôi, đây là câu trả lời đúng. Ít nhất điều này đã làm việc cho tôi. Không cần phải sử dụng bất kỳ thư viện bổ sung như SimonVT đề xuất! – Dude

1

Tôi đã gặp phải sự cố tương tự đang cố gắng để có được chế độ xem bản đồ và các đoạn để làm việc với actionbarsherlock. Xem my post trên danh sách gửi thư.

Giải pháp mà tôi đưa ra là lấy các nguồn cho thư viện tương thích và sửa đổi FragmentActivity để mở rộng SherlockActivity thay vì Hoạt động Android chuẩn.

Sau đó, bạn sẽ cần phải biên dịch các nguồn cho thư viện hỗ trợ cùng với ứng dụng của bạn (trong một số thời trang).

Trong trường hợp của tôi, tôi đã thực hiện một bước bổ sung để sửa đổi SherlockActivity để mở rộng MapActivity, nhưng vì bạn không đề cập đến bản đồ, bạn sẽ không cần phải làm điều đó.

Có thể có các giải pháp khác, nhưng điều này ít nhất có những thứ để làm việc cho tôi.

Tôi muốn giới thiệu mailing list vì dự án này dường như thay đổi thường xuyên.

+1

Điều này thực sự sẽ không hoàn toàn làm việc vì việc thực hiện menu trong 'FragmentActivity' sẽ ghi đè lên những gì có trong' SherlockActivity'. Có một mục đích xây dựng .jar của lib hỗ trợ với một thực hiện ABS đúng cho chính xác tình trạng này, tuy nhiên. –

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