2012-06-29 36 views
19

Tôi đang sử dụng ActionBarSherlock, và cố gắng để ẩn/hiển thị các ActionBar cho hình ảnh toàn màn hình, sử dụng:ActionBar hoặc ActionBarSherlock - êm Ẩn/Hiện các ActionBar

getSupportActionBar.hide(); 

getSupportActionBar.show(); 

Nhưng nó thực sự rất lúng túng và vụng về. Có cách nào để làm cho nó mượt mà hơn hoặc áp dụng hoạt ảnh dịch thuật/độ mờ đục không?

Khi kiểm tra thêm nguồn ABS, và thông qua quan sát hành vi của nó, dường như có ít nhất một số lượng tối thiểu hoạt ảnh được xác định. Điều tương tự không thể nói cho ActionBar chuẩn.

Chỉ cần cho đầy đủ, đây là mã có liên quan Tôi gọi từ một ImageView.click:

if(shouldRender) 
{ 
    . . . 

    getSupportActionBar().hide(); 

    getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN); 
} 
else 
{ 
    . . . 

    getSupportActionBar().show(); 

    getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN); 
} 

Nó đáng chú ý là thiết lập các cờ/thanh toán bù trừ cũng gây một bước nhảy, nhưng là một ít đáng chú ý nên tôi sẽ giải quyết nó sau, nếu có.

Chỉnh sửa:This (do người sáng tạo ABS) có vẻ cho rằng không thể thực hiện trên ActionBar gốc. Tôi cho rằng tôi chỉ có thể chỉnh sửa hai tệp XML xác định hoạt ảnh của anh ấy, nhưng điều đó sẽ không cho tôi sự thâm nhập nền tảng đầy đủ.

Trả lời

17

tôi sử dụng một lớp phủ ActionBar

requestWindowFeature(com.actionbarsherlock.view.Window.FEATURE_ACTION_BAR_OVERL‌​AY); 

nó không hiển thị một hình ảnh động khi show()/hide() được gọi.

+4

Lớp phủ hành động là gì? Bạn có thể cung cấp thêm thông tin? – greg7gkb

+1

'requestWindowFeature (com.actionbarsherlock.view.Window.FEATURE_ACTION_BAR_OVERLAY);', – Salw

+2

Tài liệu chính thức về chủ đề: http://developer.android.com/reference/android/view/Window.html#FEATURE_ACTION_BAR_OVERLAY –

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