2011-11-25 29 views
23

Android ActionBar có thể chia thành các thanh trên cùng và dưới cùng nếu tham số của hoạt động "uiOptions" được đặt thành "splitActionBarWhenNarrow", lưu ý thông số này chỉ hợp lệ trong ICS.Làm cách nào để kiểm soát ActionBar được chia theo chương trình?

Tổ ong đã giới thiệu một cách tiếp cận mới cho các mục danh sách nhiều lựa chọn bằng cách sử dụng thanh tác vụ. Khi một mục đang được nhấn & giữ danh sách trở thành chế độ đa lựa chọn và thanh hành động có thể được sử dụng để thực hiện một số thao tác. Thiết lập thanh tác vụ được kế thừa từ hoạt động danh sách, tức là, nếu hoạt động có thanh tác vụ chia thì lựa chọn nhiều cũng sẽ có và nếu hoạt động chỉ có thanh trên cùng, do đó, lựa chọn đa sẽ tuân thủ điều đó.

Câu hỏi đặt ra là, chỉ có thể có một thanh tác vụ hàng đầu trong hoạt động và khi danh sách chuyển sang chế độ đa lựa chọn có lập trình chia thanh tác vụ?

Cảm ơn!

+3

tôi cũng rất thích cho nó để có chức năng này. –

+0

Vâng, bạn luôn có thể làm một thanh dưới cùng tùy chỉnh, mà sẽ ở trên nếu một tình huống và dưới đây, nếu - như bạn nói - danh sách được hiển thị – piotrek1543

+0

vui lòng truy cập vào các liên kết bên dưới để kiểm tra cách thực hiện nó – piotrek1543

Trả lời

26

Không, bạn không thể chuyển đổi giữa thanh tác vụ chia tách và không chia tách khi đang di chuyển.

Đối tác setter với android:uiOptions là trên Window, không phải Activity. Window#setUiOptions là phương pháp và cờ để sử dụng là ActivityInfo#UIOPTION_SPLIT_ACTION_BAR_WHEN_NARROW.

Tuy nhiên, điều này sẽ không làm những gì bạn muốn. Thanh tác vụ tách khi thu hẹp phải được chỉ định khi cửa sổ được định cấu hình đầu tiên trước khi trang trí cửa sổ được khởi tạo. Nói cách khác, một khi cửa sổ đã được hiển thị (hoặc thậm chí một khi bạn đã gọi là setContentView) đã quá muộn để thay đổi nó.

Đây là quyết định có ý thức của nhóm Android UX. Các chế độ hành động (bao gồm các chế độ chọn) có nghĩa là phản chiếu cấu hình của thanh tác vụ trên hoạt động hiện tại. Điều này cung cấp cho người dùng một nơi duy nhất để tìm các hành động hiện tại hợp lệ trong cùng một hoạt động.

+0

Vâng, nhưng người dùng của tôi dường như gặp khó khăn trong việc tìm kiếm các hành động theo ngữ cảnh trong chế độ hành động vì hầu hết các hành động này tràn vào menu mục bổ sung vì văn bản "X đã chọn" thông báo cho họ biết số lượng mục mà họ hiện đã chọn. –

+0

Nếu chế độ hành động cụ thể đó là một phần quan trọng trong giao diện người dùng của bạn và trình bày nhiều tùy chọn, bạn có thể cân nhắc sử dụng thanh chia toàn thời gian cho hoạt động đó. – adamp

2

Tôi không tin như vậy. Tôi không thấy bất kỳ điều gì trong số Activity sẽ đóng vai trò là đối tác setter với android:uiOptions.

0

Bạn có thể cố gắng thiết lập getWindow().setUiOptions(ActivityInfo.UIOPTION_SPLIT_ACTION_BAR_WHEN_NARROW) trong Activity bạn muốn ActionBar để hiển thị như chia ngay trước onCreate() của nó, sau đó giấu nó bằng cách sử getActionBar.hide() và hành động trên danh sách mà bạn đang đề cập để làm cho nó pop-up lại sử dụng getActionBar.show().

Tôi đã thử (không phải với các thư viện hỗ trợ) hiển thị ActionBar trong một Activity và Chia thành một bằng cách sử dụng ở trên và có thể ẩn và hiển thị số lần chia tách trên các lần nhấp nút. Hi vọng điêu nay co ich. Hãy cho tôi biết trong trường hợp nó đã làm hoặc thậm chí không. Chúc mừng mã hóa. :)

1

Gói AppCompat hiện nay cung cấp widget Thanh công cụ cho phép bạn đặt một actionbar bất cứ nơi nào bạn muốn trong cách bố trí của bạn và thay đổi nó giống như bất kỳ quan điểm khác ..

Xin vui lòng xem đầy đủ tài liệu here và một hướng dẫn here .

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