2014-11-25 43 views

Trả lời

75

Sử dụng

this.getSupportActionBar().setHomeAsUpIndicator(R.drawable.ic_action_close); 

để đạt được điều này.

Bạn có thể tạo biểu tượng đóng của riêng mình hoặc lấy từ material design icon set trên GitHub. Ngoài ra, thêm dòng này trước dòng trên để tạo chức năng gần giống như mũi tên quay lại.

this.getSupportActionBar().setDisplayHomeAsUpEnabled(true); 
+0

Nó không làm việc. Nó không thay thế mũi tên quay lại bằng biểu tượng mới, cả hai đều xuất hiện. Hơn nữa, với giải pháp này, biểu tượng không nhận được thuộc tính "colorPrimaryDark". –

+0

@MartaRodriguez Xin vui lòng xem câu trả lời cập nhật của tôi –

+0

Nó hoạt động nhưng không chính xác những gì tôi muốn. Tôi dự kiến ​​sẽ làm việc như biểu tượng trở lại không, với "colorPrimaryDark". Nhưng có vẻ như biểu tượng "đóng" không phải là một phần của SDK. Cảm ơn @AlokNair! –

-3

Bạn có thể xác định một phong cách:

<style name="Theme.Toolbar.Clear"> 
    <item name="toolbarNavigationIcon">@drawable/abc_ic_clear_mtrl_alpha</item> 
</style> 

và sử dụng nó trong chủ đề của bạn:

<style name="Theme.Clear"> 
    <item name="toolbarTheme">@style/Theme.Toolbar.Clear</item> 
</style> 
14

Bạn cần phải xác định một phụ huynh trong biểu hiện, sau đó ghi đè onSupportNavigationUp() nếu sử dụng thanh ứng dụng hỗ trợ tất nhiên. Ngoài ra, hãy vào trang web này tiện dụng cho các gói biểu tượng: https://www.google.com/design/icons/

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    setContentView(R.layout.yourAwesomeLayout); 

    setupToolBar();  
} 

private void setupToolBar() { 
    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 

    if (toolbar == null) return; 

    setSupportActionBar(toolbar); 

    getSupportActionBar().setDisplayHomeAsUpEnabled(true); 

    getSupportActionBar().setHomeAsUpIndicator(R.drawable.ic_close_white_24dp); 
} 

@Override 
public boolean onSupportNavigateUp() { 
    finish(); // close this activity as oppose to navigating up 

    return false; 
} 

enter image description here

+0

bất kỳ lý do nào bạn trả về false trong 'onSupportNavigateUp()'? Tài liệu nói rằng nó chỉ là một lá cờ thành công – brainmurphy1

3
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 
toolbar.setTitle("Search"); 
toolbar.setNavigationIcon(R.drawable.abc_ic_clear_mtrl_alpha); 
setSupportActionBar(toolbar); 
1

Một thay thế cho việc xác định các hoạt động phụ huynh trong manifest là để xử lý những hành động để có trong các phương pháp onOptionsItemSelected như trong ví dụ này:

@Override 
public boolean onOptionsItemSelected(MenuItem item){ 
    switch (item.getItemId()) { 
     // Respond to the action bar's Up/Home/back button 
     case android.R.id.home: 
      finish(); 
      break; 
    } 
    return super.onOptionsItemSelected(item); 
} 
0

xin lỗi vì trả lời muộn. tôi đã tìm thấy giải pháp dễ dàng nhất cho bạn. ở trên tất cả các câu trả lời không hoạt động cho tôi (because i want to use toolbar not actionBar due to theming). vì vậy hãy thử thêm nút đóng thông qua bố cục xml. Và nó hoạt động.

đây là cú pháp xml để thêm nút đóng vào thanh công cụ (v7).

app:navigationIcon="@drawable/ic_close_black_24dp" 

ans đây là một hiện đưa hình ảnh output image

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