Tôi đã thấy trong Ứng dụng Hộp thư đến của Google, soạn email mới, trên thanh công cụ thay vì nút quay lại (mũi tên), nút này có nút "đóng" (xem hình).Nút "đóng" trong Thanh công cụ thay vì Quay lại
Tôi làm cách nào để đạt được điều này?
Tôi đã thấy trong Ứng dụng Hộp thư đến của Google, soạn email mới, trên thanh công cụ thay vì nút quay lại (mũi tên), nút này có nút "đóng" (xem hình).Nút "đóng" trong Thanh công cụ thay vì Quay lại
Tôi làm cách nào để đạt được điều này?
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);
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>
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;
}
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
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
toolbar.setTitle("Search");
toolbar.setNavigationIcon(R.drawable.abc_ic_clear_mtrl_alpha);
setSupportActionBar(toolbar);
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);
}
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"
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". –
@MartaRodriguez Xin vui lòng xem câu trả lời cập nhật của tôi –
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! –