2013-08-09 33 views
7

Tôi đang phát triển một ứng dụng Android sử dụng ActionBar chuẩn.
trên một màn hình nhất định, tôi có biểu tượng Bộ lọc được yêu cầu theo điều kiện,
tùy thuộc vào đặc điểm của dữ liệu được hiển thị, ví dụ: một số dữ liệu có thể lọc được
Những người khác thì không.
tôi không thể tìm thấy bất kỳ phương pháp nào trên thanh tác vụ trông giống như các ứng cử viên cho việc lập chương trình ẩn biểu tượng hành động trên thanh tác vụ. làm cách nào tôi có thể bật/tắt biểu tượng hành động trên thanh tác vụ?
Hoặc
làm cách nào để ẩn/hiện một biểu tượng hành động trên thanh tác vụ?
tự động bật/tắt ẩn/bỏ ẩn biểu tượng hành động ActionBar trên Android

Trả lời

12

Hãy xem xét điều này, nó cho thấy cách thay đổi các mục menu trong thời gian chạy.

http://developer.android.com/guide/topics/ui/menus.html#ChangingTheMenu

Bạn có thể ví dụ như tiết kiệm menu như là một biến thành viên của Hoạt động của bạn bên trong onCreateOpionsMenu() và sau đó làm một cái gì đó như thế này:

MenuItem item = mMenu.findItem(R.id.addAction); 
item.doSomething() 

khi bạn muốn thay đổi một cái gì đó trên một mục trình đơn cụ thể.

+0

Phil, cảm ơn vì đã dành thời gian. Đó chính xác là những gì tôi cần. cảm thấy xấu hổ tôi không thể tìm thấy nó bản thân mình :-) – Hector

2

Như tôi đã hiểu, bạn cần xóa biểu tượng hiển thị trên thanh tác vụ ở trên cùng bên trái.

Bạn có thể làm điều đó với dòng này mã đơn giản:

final ActionBar actionBar = getActionBar();  
actionBar.setDisplayShowTitleEnabled(false); 

Và nếu bạn muốn thoát khỏi tên ứng dụng thử:

actionBar.setDisplayShowHomeEnabled(false); 

Hope this helps.

+0

Không phải những gì OP đã yêu cầu –

0

Bạn cũng có thể thử điều này:

final ActionBar actionBar= getActionBar(); 
actionBar.hide(); 

Nó sẽ ẩn các biểu tượng và tiêu đề.

Đừng quên nhập khẩu của bạn:

import android.app.ActionBar; 

Good Luck

2

Bạn có thể làm điều đó bằng cách ghi đè các phương pháp onPrepareOptionsMenu(). Dưới đây là một ví dụ nhỏ

@Override 
public boolean onPrepareOptionsMenu(Menu menu) { 
    if (count < 1) 
     menu.getItem(4).setEnabled(false); //disable menuitem 5 
    if (!after) 
    menu.getItem(1).setVisible(false); // invisible menuitem 2 
    invalidateOptionsMenu(); 
    return true; 
} 

Tuy nhiên, phương pháp này chỉ được gọi là bất cứ khi nào bạn nhấp vào nút menu trên thanh hành động. Nếu bạn có bất kỳ biểu tượng nào trên thanh hành động (ngoại trừ nút menu), việc nhấp vào đó sẽ không kích hoạt phương thức OnPrepareOptionsMenu(). Để kích hoạt phương thức này theo cách thủ công, bạn có thể sử dụng invalidateOptionsMenu() trong các phương thức của mình. như thế này

void yourMethod() { 
... 
invalidateOptionsMenu(); 
... 
} 
+0

Làm thế nào để làm điều đó trên mảnh? làm thế nào để invalidateOptionsMenu() ;? –

+1

getActivity(). InvalidateOptionsMenu() sẽ hoạt động. –

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