2015-05-26 24 views
11

Tôi muốn thêm biểu tượng ứng dụng vào thanh tác vụ cho tất cả các hoạt động trong ứng dụng của tôi và nhấp vào biểu tượng, tôi muốn điều hướng đến trang chủ của ứng dụng.SetHomeButtonEnabled không hoạt động nhưng setDisplayHomeAsUpEnabled đang hoạt động

Tôi đã thử với đoạn mã sau vào onCreate

ActionBar actionBar = getSupportActionBar(); 
actionBar.setLogo(R.drawable.ic_launcher); 
actionBar.setDisplayUseLogoEnabled(true); 
actionBar.setDisplayShowHomeEnabled(true); 
actionBar.setHomeButtonEnabled(true); 

Bây giờ biểu tượng ứng dụng đang đến trong actionbar, nhưng trên cách nhấn vào nó, onOptionsItemSelected là không nhận được gọi. Nhưng nếu sử dụng actionBar.setDisplayHomeAsUpEnabled (true) thay vì actionBar.setHomeButtonEnabled (true), onOptionsItemSelected được gọi với item.getItemId(). Dưới đây là đoạn mã

ActionBar actionBar = getSupportActionBar(); 
actionBar.setLogo(R.drawable.ic_launcher); 
actionBar.setDisplayUseLogoEnabled(true); 
actionBar.setDisplayShowHomeEnabled(true); 
actionBar.setDisplayHomeAsUpEnabled(true); 

Các tài liệu cho biết sử dụng cả hai setDisplayHomeAsUpEnabled và setHomeButtonEnabled, onOptionsItemSelected sẽ được gọi và sự khác biệt duy nhất là mũi tên lên. Tôi không cần mũi tên lên trên thanh hành động, tôi chỉ yêu cầu biểu tượng ứng dụng. Làm thế nào có thể được thực hiện?

My minSdkVersion 14 và targetSdkVersion 21.

Trả lời

14

Từ http://developer.android.com/reference/android/app/ActionBar.html#setHomeAsUpIndicator(int)

Bạn có thể sử dụng:

actionBar.setHomeAsUpIndicator(R.drawable.ic_launcher); 
actionBar.setDisplayShowHomeAsUpEnabled(true); 

và điều này nên thay thế phía sau mũi tên với biểu tượng của bạn

+0

Cảm ơn bạn rất nhiều ... đó là những gì tôi muốn –

+0

bất kỳ ý tưởng tại sao '' 'setHomeButtonEnabled''' không hoạt động? –

+0

@JiechaoWang trường hợp sử dụng của bạn là gì? –

2

bạn có thể sử dụng này :

Toolbar toolbar = (Toolbar) findViewById(R.id.myToolbar); 
toolbar.setNavigationIcon(R.drawable.ic_back); 
setSupportActionBar(toolbar); 
toolbar.setNavigationOnClickListener(new View.OnClickListener(){ 
    @Override 
    public void onClick(View view){ 
    finish(); 
    } 
}); 
Các vấn đề liên quan