2014-10-29 46 views
7

Vì vậy, tôi có BaseActivity trong đó tôi có một thanh công cụ và tôi gọi setSupportActionBar (thanh công cụ).Bộ thanh công cụ AndroidNavigationIcon không hoạt động

Trong một số hoạt động của tôi mở rộng BaseActivity, tôi muốn thay đổi biểu tượng điều hướng (mũi tên mặc định) thành một hình vẽ khác. Nhưng khi tôi gọi toolbar.setNavigationIcon (myDrawable) nó không hoạt động, nó vẫn hiển thị biểu tượng mũi tên trỏ trái mặc định.

Bất kỳ ý tưởng nào? Cảm ơn.

+0

thể trùng lặp: http://stackoverflow.com/questions/26525229/toolbar-navigation-icon-never-set – Abdellah

Trả lời

39

Tôi nghĩ rằng bạn có thể thiết lập như thế này

menuDrawerToggle = new ActionBarDrawerToggle(this, menuDrawer, toolbar, R.string.drawer_open, R.string.drawer_close){...} 

    menuDrawerToggle.syncState(); 

    toolbar.setNavigationIcon(getResources().getDrawable(yourDrawable)); 

đặt setNavigationIcon sau syncState()

+2

WTF!?!? Tôi sẽ không bao giờ tìm thấy điều này, bạn đã hình dung ra điều này như thế nào? Tôi sẽ ném cho bạn một loạt các đại diện nếu tôi biết làm thế nào. – Anthony

+0

Làm thế nào để điều này chỉ có (bây giờ 7) phiếu bầu. Tuyệt vời tìm !! –

+0

Câu trả lời hay. Không thể tin được nó –

1

Trong trường hợp của tôi: Tôi don `t sử dụng ActionBarDrawerToggle. Đối với tôi hữu ích là: để thay đổi thứ tự các cuộc gọi phương thức.

Từ:

Toolbar toolbar = (Toolbar)getActivity().findViewById(R.id.toolbar); 
((AppCompatActivity)getActivity()).setSupportActionBar(toolbar); 
toolbar.setNavigationIcon(R.drawable.ic_chevron_left_white_24dp); 

Để:

Toolbar toolbar = (Toolbar)getActivity().findViewById(R.id.toolbar); 
toolbar.setNavigationIcon(R.drawable.ic_chevron_left_white_24dp); 
((AppCompatActivity)getActivity()).setSupportActionBar(toolbar); 
0

Trong trường hợp của tôi, setNavigationIcon sau syncState như @Hsieh không hoạt động! Giải pháp của tôi được đặt trong phương thức onPostCreate như sau. Override phương pháp này trong hoạt động của bạn

@Override 
    protected void onPostCreate(@Nullable Bundle savedInstanceState) { 
     super.onPostCreate(savedInstanceState); 
     mToolbar.setNavigationIcon(R.drawable.ic_menu_button); 
    } 
Các vấn đề liên quan