2011-11-18 47 views
5

Tôi muốn tạo ActionBar theo thẻ (NAVIGATION_MODE_TABS) với chế độ xem tùy chỉnh (DISPLAY_SHOW_CUSTOM). Nó nên trông như thế này:Cách tạo Android ActionBar với chế độ xem và tab tùy chỉnh

enter image description here

tôi chỉ cần để có thể điều hướng thông qua các hoạt động thông qua các nút ở hàng đầu - như tôi sẽ làm gì với ActionBar trong bình thường - chế độ theo thẻ thuốc, và cũng có thể để chuyển đổi các tab ở hàng thứ hai. Nếu tôi đặt ActionBar ở chế độ tab, chế độ xem tùy chỉnh biến mất, có vẻ như chế độ tab và chế độ xem tùy chỉnh là loại trừ lẫn nhau ... Thậm chí có thể không?

Có nhiều cách có thể hơn để thực hiện điều đó mà không có ActionBar. Thông thường, tôi sẽ tạo bố cục bằng các nút, bao gồm bố cục trong TabActivity (hiện không được chấp nhận) và đó là tất cả. Nhưng tôi không cảm thấy nó sẽ là giải pháp tốt nhất, vì vậy bất kỳ trợ giúp hay lời khuyên nào được đánh giá cao.

Xin cảm ơn trước.

EDIT: Sau một ít nghiên cứu tôi thấy rằng nó hoạt động, nó chỉ là không được hiển thị trên màn hình 4 inch của tôi. Tuy nhiên nó vẫn không hoạt động như tôi mong đợi. Trên màn hình rộng hơn, chế độ xem tùy chỉnh hiển thị ở bên phải của các tab - điều đó là ổn, nhưng trên màn hình điện thoại 4 inch, màn hình không hiển thị.

Tôi nghĩ giải pháp tốt nhất là sử dụng thư viện ActionBarSherlock (Tôi không thích sử dụng tính năng không dùng nữa và ứng dụng của tôi cũng phải hoạt động trên thiết bị phiên bản trước sdk11) và phân đoạn - một cho ActionBar hàng đầu và thứ hai cho chế độ xem theo thẻ.

+0

Bạn có thể xem xét lại bằng cách sử dụng thanh tác vụ VÀ các tab. Bạn có một màn hình giới hạn để hoạt động, quá nhiều điều khiển điều hướng sẽ chỉ làm xáo trộn ứng dụng của bạn. Từ những gì tôi có thể thấy, trên một chiếc điện thoại 3,5 hoặc thậm chí 4 inch, nó sẽ chiếm gần 1/3 nếu không có nhiều màn hình hơn. Chỉ là một suy nghĩ :), và công việc tốt trong nghiên cứu, đó là cách tốt nhất để học hỏi. – Jack

+0

Thật không may, không có gì để xem xét lại, nó là một yêu cầu của khách hàng của tôi ... Nhưng, cuối cùng, tôi đã tìm thấy một giải pháp thanh lịch và đơn giản mà tôi bỏ qua trước đây. Các nút trên hàng trên cùng có thể được thêm vào dưới dạng tùy chọnMenu items - một vài dòng và bố cục được thực hiện. Câu hỏi có thể được đóng lại ... – vitakot

Trả lời

0

Các nút ở hàng đầu phải được thêm vào như là mục optionMenu:

@Override 
public boolean onCreateOptionsMenu(Menu menu) 
{ 
    for (int i = 0; i < menuItems; i++) 
    { 
     if (i == 0) 
     { 
      menu.add(R.string.home).setIcon(R.drawable.button_home).setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM | MenuItem.SHOW_AS_ACTION_WITH_TEXT); 
      menu.getItem(0).setOnMenuItemClickListener(this); 

     } 
    } 

    return super.onCreateOptionsMenu(menu); 
} 

Triết lý của ActionBar là hơi khác nhau sau đó tôi cho là khi yêu cầu. Từ Android developer guide:

Khi bạn muốn cung cấp tab điều hướng trong hoạt động, sử dụng tab của thanh tác vụ là một tùy chọn tuyệt vời (thay vì sử dụng TabWidget), bởi vì hệ thống điều chỉnh các tab thanh tác vụ cho các kích thước màn hình khác nhau — đặt chúng vào thanh tác vụ chính khi màn hình đủ rộng hoặc trong một thanh riêng biệt (được gọi là "thanh tác vụ xếp chồng") khi màn hình quá hẹp.

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