2014-10-22 11 views
5

Tôi vừa cập nhật SDK Android của mình để nhận bản cập nhật Android 5. Đó là những bước tôi đã làm:NavigationDrawer không hoạt động chính xác với bản sửa đổi SupportLibrary 21

  • cập nhật Android-SDK
  • Cập nhật các plugin nhật thực
  • Cập nhật của tôi dự án xây dựng target = 21 và targetSdkVersion = 21

Sau đó, tôi chạy ứng dụng của tôi (sử dụng thư viện compat-v7) và thấy rằng ngăn điều hướng có vẻ lỗi. Biểu tượng ứng dụng trong thanh tác vụ đã biến mất và kiểu tổng thể có vẻ không chính xác (xem hình 2).

Vì vậy, tôi lấy ví dụ "Creating a Navigation Drawer" và thực hiện các xét nghiệm sau:

Downloaded dự án mẫu, cập nhật việc xây dựng mục tiêu và targetSdk và thay thế android-support-v4.jar với thư viện compat-v7 (sửa đổi 21). Thay đổi khẩu ActionBarDrawerToggle từ android.support.v4... để import android.support.v7...

Kết quả là chính xác:

Hình 1:

enter image description here

Sau đó, tôi cố gắng để trao đổi các lớp MainActivity mẹ từ Hoạt động để ActionBarActivity, thay đổi getActionBar() cuộc gọi với getSupportActionBar()getFragmentManager() với getSupportFragmentManager()

cũng đã thêm chủ đề android:theme="@style/Theme.AppCompat" vào hoạt động

Nó hoạt động nhưng biểu tượng ứng dụng bị thiếu và trình đơn tùy chọn không được hiển thị dưới dạng hành động. Xem ảnh chụp màn hình bên dưới.

Ảnh 2:

enter image description here

Làm thế nào tôi có thể sửa chữa nó?

CẬP NHẬT:

Với mã:

getSupportActionBar().setDisplayHomeAsUpEnabled(true); 
getSupportActionBar().setHomeButtonEnabled(true); 
getSupportActionBar().setIcon(R.drawable.ic_launcher); 
getSupportActionBar().setDisplayShowHomeEnabled(true); 

Bạn nhận được thanh sau:

enter image description here

Nó là khá ok nhưng tôi preffer phiên bản nhỏ gọn, nơi chỉ báo/mũi tên ngăn kéo không có đệm với biểu tượng (xem hình bên dưới). Làm thế nào tôi có thể đạt được nó?

enter image description here

+0

Tôi đã gặp vấn đề tương tự với thanh công cụ đang dùng các tùy chọn trình đơn của tôi và đưa chúng vào menu mục bổ sung:/Bạn đã tìm thấy giải pháp cho điều này chưa? – DrkStr

Trả lời

0

này đang làm việc như dự định, các biểu tượng ứng dụng không được hiển thị theo mặc định bây giờ. Bạn có thể gọi sau để hiển thị lại biểu tượng.

ActionBar ab = getSupportActionBar(); 
ab.setHomeButtonEnabled(true); 
+3

Ví dụ "Tạo ngăn điều hướng" đã sử dụng nó và biểu tượng vẫn còn thiếu – Addev

+0

Điều này không hoạt động, giải pháp tốt hơn là điều này: http://stackoverflow.com/a/26716012/1159404 –

1

Có lẽ đây sẽ giúp bạn:

getSupportActionBar().setDisplayShowHomeEnabled(true); 
getSupportActionBar().setLogo(R.drawable.ic_launcher); 
getSupportActionBar().setDisplayUseLogoEnabled(true); 

UPDATE: Bạn có thể tìm thấy câu trả lời cho câu hỏi thứ hai của bạn ở đây:

How to change Toolbar navigation icon and options menu margin

2

Điều này thực sự là có ý định hành vi cho mô hình Material Design mới. Theo tài liệu chính thức về Toolbar:

Trong các nhà phát triển UI Android hiện đại nên dựa nhiều hơn vào bảng màu cho biểu tượng ứng dụng. Việc sử dụng biểu tượng ứng dụng cùng với tiêu đề làm bố cục chuẩn sẽ không được khuyến khích trên các thiết bị API 21 và mới hơn.

0

Sau khi bạn chuyển sang ActionBarActivity mới, có vẻ như nó ẩn nhà/Biểu trưng của thanh tác vụ. Và kiểu @/Theme.AppCompat không có Logo theo mặc định. Bạn có thể kích hoạt nó bằng .setHomeButtonEnabled (true);

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