2012-11-21 41 views
32

Tôi muốn bật nút trang chủ trong thanh Hành động. Tôi đang sử dụng mã này:Sự khác biệt giữa setDisplayHomeAsUpEnabled và setHomeButtonEnabled là gì?

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH) { 
      actionbar.setHomeButtonEnabled(true); 
      actionbar.setDisplayHomeAsUpEnabled(true); 
} 

Trong này tôi đang sử dụng setHomeButtonEnabledsetDisplayHomeAsUpEnabled để đặt một dấu ấn trở lại vào biểu tượng trong ActionBar. Nếu tôi chỉ sử dụng setDisplayHomeAsUpEnabled thì nó cũng sẽ hoạt động? Có cần phải thiết lập setHomeButtonEnabled cho đúng không?

Sự khác nhau giữa hai loại là gì?

Trả lời

65

Đối với những gì bạn muốn làm, actionBar.setDisplayHomeAsUpEnabled(true) là đủ.

Để biết sự khác biệt:
actionBar.setHomeButtonEnabled(true) sẽ chỉ làm cho biểu tượng có thể nhấp, với màu ở nền của biểu tượng dưới dạng phản hồi của nhấp chuột.
actionBar.setDisplayHomeAsUpEnabled(true) sẽ làm cho biểu tượng có thể nhấp và thêm < ở bên trái của biểu tượng.

+0

Khi chỉ 'setHomeButtonEnabled (true) 'được thiết lập, sẽ vẫn gọi' onOptionsItemSelected'? –

+0

Tôi nghĩ vậy nhưng tôi không kiểm tra. – yDelouis

+5

Đối với bản ghi, tôi đã kiểm tra và 'setHomeButtonEnabled (true)' ** không ** vẫn gọi 'onOptionsItemSelected' và có thể được capture theo cùng cách' item.getItemId() == android.R.id.home'. Vì vậy, sự khác biệt duy nhất là biểu tượng '<'. –

3

Như Android nói:

- setDisplayShowHomeEnabled(boolean showHome) 
    // Set whether to include the application home affordance in the action bar. 
    // (and put a back mark at icon in ActionBar for "up" navigation) 

-setHomeButtonEnabled(boolean enabled) 
    // Enable or disable the "home" button in the corner of the action bar. 
    // (clickable or not) 

Nó nên được khá rõ ràng tôi nghĩ rằng

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