Tôi muốn tự động thay đổi biểu tượng "nhà" trong ActionBar. Điều này có thể dễ dàng thực hiện trong v14 với ActionBar.setIcon (...), nhưng tôi không thể tìm thấy anyway để thực hiện điều này trong các phiên bản trước.Android: tự động thay đổi biểu tượng ActionBar?
Trả lời
Nếu bạn đang sử dụng mã ActionbarCompat được cung cấp bởi google, bạn có thể truy cập vào biểu tượng nhà qua ActionBarHelperBase. lớp java cho API v4 trở đi.
//code snippet from ActionBarHelperBase.java
...
private void setupActionBar() {
final ViewGroup actionBarCompat = getActionBarCompat();
if (actionBarCompat == null) {
return;
}
LinearLayout.LayoutParams springLayoutParams = new LinearLayout.LayoutParams(
0, ViewGroup.LayoutParams.MATCH_PARENT);
springLayoutParams.weight = 1;
// Add Home button
SimpleMenu tempMenu = new SimpleMenu(mActivity);
SimpleMenuItem homeItem = new SimpleMenuItem(tempMenu,
android.R.id.home, 0, mActivity.getString(R.string.app_name));
homeItem.setIcon(R.drawable.ic_home_ftn);
addActionItemCompatFromMenuItem(homeItem);
// Add title text
TextView titleText = new TextView(mActivity, null,
R.attr.actionbarCompatTitleStyle);
titleText.setLayoutParams(springLayoutParams);
titleText.setText(mActivity.getTitle());
actionBarCompat.addView(titleText);
}
...
Bạn có thể sửa đổi mã thành nút trang chủ có thể truy cập vào các hoạt động mở rộng ActionBarActivity và thay đổi theo cách đó.
Tổ ong có vẻ khó hơn một chút và dường như không có khả năng truy cập dễ dàng như vậy. Khi đoán, id của nó cũng phải là android.R.id.home để bạn có thể lấy từ chế độ xem trong ActionBarHelperHoneycomb.java
Có! Cảm ơn bạn. 'Activity.findViewById (android.R.id.home)' hoạt động. – ab11
Nếu actionbar của bạn hoạt động giống như Sherlock và được dựa trên các mục menu, đây là giải pháp của tôi:
@Override
public boolean onPrepareOptionsMenu(Menu menu) {
MenuItem switchButton = menu.findItem(R.id.SwitchSearchOption);
if(searchScriptDisplayed){
switchButton.setIcon(R.drawable.menu_precedent);
}else{
switchButton.setIcon(R.drawable.icon_search);
}
return super.onPrepareOptionsMenu(menu);
}
tốt, đối với tổ ong tôi sử dụng thanh tác vụ do sdk cung cấp. vì vậy, tôi đang cố gắng tìm một tổ ong tương đương với phương thức ActionBar.setIcon() được cung cấp trong v14. – ab11
Cảm ơn đoạn trích tuyệt vời này - đã tìm kiếm điều này trong một thời gian! – aaronsnoswell
đã làm việc cho tôi! cảm ơn –
ActionBar sẽ sử dụng thuộc tính android: logo của tệp kê khai của bạn, nếu một được cung cấp. Điều đó cho phép bạn sử dụng các tài nguyên có thể vẽ riêng biệt cho biểu tượng (Trình khởi chạy) và biểu tượng (ActionBar, trong số những thứ khác).
tôi sẽ nói bạn làm điều gì đó như thế này:
getSupportActionBar().setHomeButtonEnabled(true);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setHomeAsUpIndicator(R.drawable.ic_menu_drawer);
thấy liên kết How to change the icon actionBarCompat
- 1. Thay đổi biểu tượng trong ActionBar động
- 2. tự động bật/tắt ẩn/bỏ ẩn biểu tượng hành động ActionBar trên Android
- 3. Thay đổi văn bản động cho Nút Actionbar Android
- 4. Biểu tượng JButton tự động thay đổi kích thước
- 5. android actionbar - tháo actionbar động
- 6. Tổ ong Android - Thay đổi kiểu Actionbar
- 7. Biểu tượng Android không thay đổi
- 8. Thay đổi biểu tượng thanh Hành động
- 9. Android: Thay đổi các mục menu ActionBar từ Fragment
- 10. extjs4 Thay đổi biểu tượng cột hành động động
- 11. Android: Lề giữa biểu tượng ActionBar và Navigation menu thả xuống thay đổi khi bạn nhấp vào tìm kiếm
- 12. Android - Nhấp vào biểu tượng ứng dụng ActionBar, tạo phiên bản hoạt động mới
- 13. Thay đổi hoạt ảnh ẩn của ActionBar?
- 14. Có thể thay đổi biểu tượng của thanh trạng thái (biểu tượng thông báo) động không?
- 15. Làm cách nào để thay đổi tiêu đề và biểu tượng trên thanh tác vụ android
- 16. cách thay đổi biểu tượng trình đơn tràn trên Android
- 17. HighCharts Tự động thay đổi Loại biểu đồ
- 18. Thông báo đẩy của Apple không tự động thay đổi biểu tượng huy hiệu
- 19. Tự động thay đổi biểu tượng trong danh sách xem jQuery Mobile
- 20. Thay đổi văn bản biểu tượng ứng dụng động trong Android
- 21. Các biểu tượng ActionBar có kích thước khác nhau
- 22. Android: Tự động thay đổi màu nền của TextView
- 23. Thay đổi ngôn ngữ giả lập Android tự động
- 24. Android page pager tự động thay đổi sau vài giây
- 25. Android - Cách tự động thay đổi bố cục đoạn
- 26. Cách tự động thay đổi kích thước lưới khi biểu mẫu được thay đổi kích thước?
- 27. Android ActionBar setCheckable() không hoạt động
- 28. Thay đổi màu nền của tab ActionBar
- 29. Tự động thay đổi JComboBox
- 30. Thay đổi biểu tượng mỗi ngày
Có bất cứ điều gì xảy ra khi bạn gọi 'setIcon'? Và nếu bạn đang cố gắng hoàn thành mọi thứ trong bất kỳ thứ gì trước Honeycomb, bạn nên xem [ActionBarSherlock.] (Http://actionbarsherlock.com/) – adneal
Tôi đang sử dụng một thành phần ActionBar-esque tùy chỉnh cho pre-v11 (tương tự như ActionBarSherlock). Điều này là dành cho v11-v13 (tổ ong). Khi tôi gọi setIcon trong tổ ong, tôi nhận được một ngoại lệ methodnotfound. – ab11
setIcon chỉ khả dụng ở cấp API> = 14 – Sandra