2013-02-20 35 views
25

Tôi đang tạo tab điều hướng của Thanh tác vụ nhưng khi Thanh tác vụ được xếp chồng lên nhau, các tab sẽ không nhận được toàn bộ không gian chiều rộng. Tôi có một foto để minh họa nó.Thanh tác vụ xếp chồng lên nhauBấm thanh tab không điền phụ huynh

enter image description here

là có thể, trong trường hợp này, cho đến mỗi tab 50% độ rộng màn hình?

Cảm ơn bạn

Tôi đang chỉnh sửa để nói rằng đó không phải là Thanh tác vụ Sherlock. Và tôi đang làm việc trong Samsung Galaxy Note 10.1 và trong Nexus 7. Và bây giờ, thử nghiệm nó trong Nexus, tôi nhận thấy rằng hành vi của nó là khác nhau. Một ảnh chụp màn hình:

enter image description here

+1

Kaixo Jon, tôi đang gặp sự cố tương tự. Bạn đã đi đến kết luận chưa? – mdelolmo

+0

Ez, xin lỗi mdelolmo nhưng tôi đang ở trong tình trạng tương tự. Thật là ngớ ngẩn. –

+1

bạn có giải pháp cho việc này không? –

Trả lời

18

Tôi không nghĩ đó là khả thi vào lúc này. Tôi đã cố gắng làm điều tương tự trong vài ngày qua, và đây là những gì tôi đã tìm thấy cho đến nay.

Khung công tác Android sử dụng một lớp được gọi là ActionBarPolicy để đặt một số quy tắc liên quan đến hành vi của ActionBar. Trong tệp này (có thể tìm thấy ở đây: https://github.com/android/platform_frameworks_base/blob/master/core/java/com/android/internal/view/ActionBarPolicy.java), bạn sẽ tìm thấy một phương thức gọi là getStackedTabMaxWidth() trả về giá trị mờ (hiện được đặt trong các tài nguyên tại 160dip).

Giá trị này được sử dụng là lớp bên trong TabView được đặt trong ScrollingTabContainerView (https://github.com/android/platform_frameworks_base/blob/master/core/java/com/android/internal/widget/ScrollingTabContainerView.java). TabView là cài đặt riêng của TabBar của ActionBar.

Bây giờ tôi không nghĩ rằng giá trị này cũng không phải hành vi này có thể được sửa đổi, ngoại trừ có thể sử dụng Reflection. Tôi không biết đủ về nó để làm như vậy, vì vậy nếu ai đó có thể quản lý một điều như vậy, đừng ngần ngại để nói như vậy, bởi vì đây thực sự là một hành vi xấu mà không nhìn tuyệt vời trên một số máy tính bảng.

+0

Từ https://android.googlesource.com/platform/frameworks/base/+/b8139af3dcae80c0030afd0354dc424a7c72c3d9 "xếp chồng tab thanh tác vụ bây giờ có một giới hạn rộng. Điều này ngăn cản siêu rộng tab mà có thể chiều dài toàn bộ màn hình. cụm các tab tập trung nếu nó không trải dài toàn bộ chiều rộng. " –

+0

Có vẻ như Android đang di chuyển khỏi các tab điều khiển tới thanh tác vụ trong Android M. Rất tiếc, sự cố vẫn tiếp diễn trong các phiên bản cũ hơn. –

0

Tab thanh tác vụ xếp chồng trên Android không có độ rộng có thể điều chỉnh.

"xếp chồng tab thanh tác vụ bây giờ có một giới hạn rộng. Điều này ngăn cản các tab siêu rộng có thể chiều dài toàn bộ màn hình. Cụm các tab tập trung nếu nó không trải dài toàn bộ chiều rộng." https://android.googlesource.com/platform/frameworks/base/+/b8139af3dcae80c0030afd0354dc424a7c72c3d9

Giải pháp là sử dụng TabLayout API từ Thư viện hỗ trợ thiết kế Android được phát hành với Android 5.0. Thư viện Hỗ trợ Android yêu cầu thư viện appcompat, nhưng sự phụ thuộc đó được giải quyết cho bạn nếu bạn xây dựng bằng cách sử dụng gradle. Đối với hầu hết các nhà phát triển, điều này sẽ không phải là một vấn đề, nhưng các thiết lập lại của TabLayout ít nhất là SDK API cấp 22, bởi vì phụ thuộc appcompat được biên dịch chống lại 22. Tuy nhiên, TabLayout không có phụ thuộc thời gian chạy vào ngày 22, có nghĩa là bạn có thể chạy nó trên các thiết bị lên đến cấp API 7.

tl; r - Sử dụng Tablayout từ Thư viện thiết kế Android. Yêu cầu cấp API 22 trên nhà phát triển, nhưng có thể chạy trên điện thoại cũ lên tới phiên bản 7.

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