Bản sửa đổi gần đây của thư viện hỗ trợ

Trang này cung cấp thông tin chi tiết về các bản phát hành gói Thư viện hỗ trợ gần đây nhất. Đối với các bản phát hành trước, hãy xem Kho lưu trữ bản sửa đổi của thư viện hỗ trợ.

Bản sửa đổi 28.0.0 Sản xuất

(ngày 21 tháng 9 năm 2018)

Đây là bản phát hành ổn định của Thư viện hỗ trợ 28.0.0 và phù hợp để sử dụng cho phiên bản phát hành công khai. Đây sẽ là bản phát hành tính năng cuối cùng trong đóng gói android.support. Các nhà phát triển nên chuyển sang AndroidX.

Tính năng mới

  • AnimatedStateListDrawableCompat cung cấp hiệu ứng chuyển đổi ảnh động giữa các trạng thái có thể vẽ.
  • VectorDrawableCompat có hỗ trợ tính năng tô màu chuyển màu cũng như tô màu và nét ColorStateList.

Bản sửa đổi 28.0.0 RC 2

(Ngày 27 tháng 8 năm 2018)

Bản phát hành dùng thử này của thư viện hỗ trợ được coi là đã hoàn thiện tính năng và nền tảng API công khai của thư viện này là ổn định. Bản phát hành này sẽ được xuất dưới dạng phiên bản ổn định cuối cùng, trừ mọi vấn đề nghiêm trọng có thể phát sinh. Bản phát hành này phải an toàn khi sử dụng trong phiên bản chính thức. Vui lòng báo cáo mọi lỗi trong công cụ theo dõi lỗi công khai.

Vấn đề đã khắc phục

  • Proguard xoá hàm khởi tạo Ứng dụng mô hình khung hiển thị (lỗi công khai 112230489)
  • Khắc phục trạng thái hằng số "AnimatedStateListDrawableCompat"
  • Xoá phần phụ thuộc media2 khỏi mediarouter 1.0.0
  • API "Fragment.getViewLifecycleOwner()" không bị dừng khi bạn nhấn vào nút màn hình chính (vấn đề công khai 113070421) ([vấn đề công khai 113070421](https://issuetracker.google.com/issue/113070421))

Bản sửa đổi 28.0.0 RC 1

(Ngày 6 tháng 8 năm 2018)

Bản phát hành dùng thử này của thư viện hỗ trợ được coi là đã hoàn thiện tính năng và nền tảng API công khai của thư viện này là ổn định. Bản phát hành này sẽ được xuất dưới dạng phiên bản ổn định cuối cùng, trừ mọi vấn đề nghiêm trọng có thể phát sinh. Bản phát hành này phải an toàn khi sử dụng trong phiên bản chính thức. Vui lòng báo cáo mọi lỗi trong công cụ theo dõi lỗi công khai.

Lưu ý: Một số thư viện, chẳng hạn như media2, vẫn ở giai đoạn alpha vì giao diện API chưa được hoàn thiện. Bạn không nên sử dụng thư viện alpha cho ứng dụng phát hành chính thức. Bạn nên tuyệt đối tránh việc phụ thuộc vào các thư viện alpha trong bản phát hành chính thức, vì nền tảng API của các thư viện này có thể thay đổi theo cách không tương thích với nguồn và tệp nhị phân.

Vấn đề đã khắc phục

  • Trình đơn BottomNavigationView được khởi chạy không chính xác trong thư viện hỗ trợ thiết kế
  • PositionalDataSource không xử lý chính xác việc chèn mục thêm vào trước vào cơ sở dữ liệu
  • Thanh trượt bị giật và không phản hồi
  • "SlicesProviderCompat.get DataSpecs()" không thêm mã nhận dạng người dùng vào URI
  • RoutePlayer2: chế độ phát từ xa không chuyển trở lại chế độ phát trên cục bộ
  • Quá trình phân tích cú pháp lát cắt (slice) lưu trong bộ nhớ đệm đang gặp sự cố trên các hành động
  • Ứng dụng Google Tìm kiếm gặp sự cố khi kết xuất lát cắt (slide) tĩnh
  • ConcurrentModifyException trong thư viện lựa chọn RecyclerView khi tập dữ liệu thay đổi khi xoá lựa chọn
  • PreferenceThemeOverlay đã được cập nhật lên giao diện Material mới nhất. Nếu không có giao diện tuỳ chỉnh nào được cung cấp, thì PreferenceThemeOverlay sẽ được dùng làm giao diện mặc định.
  • Ngừng sử dụng các giao diện PreferenceThemeOverlay.v14 và PreferenceThemeOverlay.v14.Material và thay bằng PreferenceThemeOverlay.
  • Chế độ hiển thị PreferenceGroup nay được liên kết với các thành phần con – việc ẩn một nhóm mẹ cũng sẽ ngăn các nhóm con xuất hiện trong hệ phân cấp. Hãy sử dụng Preference.isUnique() để biết một Tuỳ chọn ưu tiên có thực sự hiển thị với người dùng trong hệ phân cấp hay không.
  • Ngừng sử dụng Preference.onSetInitialValue(boolean, Object) và thay thế bằng onSetInitialValue(Object). PreferenceDataStore hiện cũng khôi phục chính xác các giá trị mặc định.

Bản sửa đổi 28.0.0 Beta 1

(Tháng 7 năm 2018)

Bản phát hành beta này của Thư viện hỗ trợ được coi là bản phát hành hoàn thiện về tính năng và giao diện API công khai của thư viện này ổn định, trừ mọi vấn đề nghiêm trọng có thể phát sinh. Mặc dù bản phát hành này an toàn để sử dụng cho bản phát hành công khai, nhưng có thể vẫn chứa lỗi. Vui lòng báo cáo mọi lỗi trong công cụ theo dõi lỗi công khai.

Vấn đề đã khắc phục

  • Sự kiện ăn GestureSelectionHelper trên các mục không chọn được.
  • Lát cắt thanh trượt có thể có biểu tượng ngón tay trùng lặp khi giá trị thanh trượt đang được cập nhật
  • Biểu tượng tương thích đã làm hỏng biểu tượng TYPE_URI
  • Sự cố với tuỳ chọn Preference dùng thanh cần gạt (Seekbar)
  • Sự cố trong Slice.toString()
  • OffsettingListUpdateCallback.onMoved() gọi mCallback.onRemoved() thay vì mCallback.onMoved() (Vấn đề 110711937)

Bản sửa đổi 27.1.1

(Tháng 4 năm 2018)

Vấn đề đã khắc phục

  • AsyncListDiffer không gọi getChangePayload (Vấn đề AOSP 73961809)
  • Fragment ViewModel của onCleared không được gọi (vấn đề của AOSP 74139250)
  • RecyclerView.setRecycledViewPool() tăng AttachCount ngay cả khi bộ chuyển đổi rỗng
  • RecyclerView NPE nếu SmoothScroller.onStop gọi dừng() hoặc startSmoothScroller()
  • Giao dịch thay thế mảnh khiến mảnh trước đó nhấp nháy sau khi mảnh mới xuất hiện (vấn đề AOSP 74051124)
  • Thay đổi có thể gây lỗi cho lệnh gọi lại trình tải trong phiên bản 27.1.0 (Vấn đề AOSP 74135998)
  • Bố cục RTL không hoạt động khi chế độ xem lưới dọc đặt cột >1
  • onLoadFinish được gọi nhiều lần trong ViewPager bằng FragmentPagerAdapter
  • AsyncListDiffer sẽ gửi thông tin cập nhật sau khi đặt danh sách hiện tại (Vấn đề AOSP 74003309)
  • ShareActionProvider gửi ClassCastException trong 27.1.0
  • Thay đổi vòng đời của mảnh với ViewPager (Vấn đề AOSP 73976255)

Bản sửa đổi 28.0.0 Alpha 1

(Tháng 3 năm 2018)

Lưu ý: 28.0.0-alpha1 là phiên bản phát hành trước để hỗ trợ bản xem trước dành cho nhà phát triển Android P. Giao diện API có thể thay đổi và không nhất thiết phải bao gồm các tính năng hoặc bản sửa lỗi từ các phiên bản ổn định mới nhất của Thư viện hỗ trợ.

Nội dung thay đổi quan trọng:

  • Như đã lưu ý trước đó trong thông báo của Android KTX, chúng tôi đang tiếp tục sử dụng tiền tố gói androidx trên các thư viện của mình. Một số thư viện hoàn toàn mới, bao gồm heifwriterrecyclerview-selection, sẽ bắt đầu trong gói mới này. Chúng tôi hy vọng việc phân chia giữa android.*androidx.* sẽ giúp bạn hiểu rõ hơn về những API đi kèm với nền tảng và đâu là thư viện tĩnh dành cho các nhà phát triển ứng dụng hoạt động trên nhiều phiên bản Android.
  • Chúng tôi đã chia các phần của support-core-ui, support-core-utils và support-compat vào các thư viện nhỏ hơn. Thay đổi này sẽ giúp chúng tôi gỡ bỏ các phần phụ thuộc của thư viện hỗ trợ trong tương lai. Chúng tôi hiện có các thư viện mới sau đây:
    • asynclayoutinflater (từ support-core-ui)
    • bộ sưu tập (từ support-compat)
    • coordinatorlayout (từ thiết kế)
    • bộ chuyển đổi con trỏ (từ support-core-ui)
    • chế độ xem tuỳ chỉnh (từ support-core-ui)
    • documentfile (từ support-core-utils)
    • Drawlayout (từ support-core-ui)
    • bộ nội suy (từ support-core-ui)
    • trình tải (từ support-fragments và core-utils)
    • Localbroadcastmanager (từ support-core-utils)
    • in (từ support-core-utils)
    • Swipepanlayout (từ support-core-ui)
    • Swiperefreshlayout (từ support-core-ui)
    • trình xem trang (từ support-core-ui)

API mới

  • recyclerview-selection hỗ trợ chọn mục cho RecyclerView. Gói này cung cấp:
    • Hỗ trợ tạo, sửa đổi, kiểm tra và giám sát các thay đổi đối với một tập hợp các mục đã chọn trong danh sách RecyclerView.
    • Hỗ trợ các thao tác nhiều lựa chọn trực quan:
      • Chế độ chọn bằng thao tác chạm cho phép người dùng chọn phạm vi các mục bằng cử chỉ nhấn và giữ trực quan.
      • Tính năng lựa chọn băng tần bằng chuột cho phép người dùng chọn một khối các mục trong danh sách RecyclerView bằng cách sử dụng các thao tác âm thanh/dải con trỏ chuột truyền thống.
    • Hỗ trợ các thiết bị tập trung vào thao tác chạm, bao gồm cả các kiểu dáng dành cho điện thoại và máy tính xách tay có hỗ trợ thao tác chạm, cũng như thiết bị tập trung vào con trỏ.
  • Người viết HEIF hỗ trợ việc viết hình ảnh tĩnh định dạng HEIF.
  • Thư viện thiết kế
    • Chúng tôi đã giới thiệu một giao diện ứng dụng mới, Theme.MaterialComponents, với các thuộc tính mới và kiểu được cập nhật cho các thành phần.
    • Chúng tôi đã thêm các thành phần sau:
      • BottomAppBar (Thanh ứng dụng phía dưới)
      • Khối (chip)
      • Nhóm khối
      • Nút Material
      • MaterialCardView
  • Lát cắt (Slice) cung cấp một khung để ứng dụng nhúng nội dung theo mẫu từ các ứng dụng khác.
    • Trình tạo lát cắt chứa các phương thức để tạo nội dung ở định dạng mẫu.
    • cắt-view chứa các phương thức để trình bày nội dung đó.
  • Thao tác trên trình duyệt cung cấp một giao thức cho nhà phát triển ứng dụng để khởi chạy trình đơn theo bối cảnh nhất quán (nhưng có thể tuỳ chỉnh) cho URL. Tính năng này phụ thuộc vào sự hiện diện của một ứng dụng trình duyệt (chẳng hạn như Chrome, nơi tính năng này vẫn đang trong quá trình phát triển) có triển khai tính năng hỗ trợ cho các thao tác trên trình duyệt.
  • ContextCompat.getSystemService()getSystemServiceName() cho phép tra cứu dịch vụ hệ thống theo loại ở tất cả các cấp độ API.

Sửa lỗi

  • Fragment ViewModel của onCleared không được gọi (vấn đề của AOSP) 74139250)
  • onLoadFinish() được gọi nhiều lần trong ViewPager bằng FragmentPagerAdapter (vấn đề AOSP 74182171)
  • LinearLayoutManager của smoothScrollToPosition() của RecyclerView hiển thị chuyển động (qua lại) thất thường trong một số trường hợp nhất định (vấn đề AOSP 71567765)

Bản phát hành bản sửa đổi 27.1.0

(Tháng 2 năm 2018)

Những thay đổi quan trọng

  • Quy trình triển khai cơ bản của Trình tải đã được viết lại để sử dụng Lifecycle. Mặc dù API không thay đổi, nhưng có một số thay đổi về hành vi:
    • Giờ đây, bạn chỉ có thể gọi initLoader(), restartLoader()destroyLoader() trên luồng chính.
    • Giờ đây, onStartLoading()onStopLoading() của Trình tải sẽ được gọi khi hoạt động/Mảnh chứa FragmentActivity/Mảnh chứa được bắt đầu và dừng tương ứng.
    • onLoadFinished() sẽ chỉ được gọi trong khoảng từ onStart() đến onStop. Do đó, các giao dịch Mảnh hiện có thể được thực hiện một cách an toàn trong onLoadFinished().
    • Các phương thức FragmentController liên quan đến Trình tải hiện không được dùng nữa.
  • Giờ đây, getDialog() của DialogFragment sẽ không rỗng cho đến onDestroyView(), thay vì trở thành giá trị rỗng trong dismiss(). Giờ đây, bạn có thể xác định xem Hộp thoại có bị đóng theo cách thủ công trong onStop() hay không bằng cách kiểm tra xem getDialog().isShowing() có trả về giá trị false hay không.

API mới

  • ListAdapter cho RecyclerView (cùng với AsyncListDiffer) giúp bạn dễ dàng tính toán sự khác biệt của danh sách trên luồng trong nền. Các chế độ này có thể giúp RecyclerView tự động thay đổi nội dung chuyển động mà không tốn nhiều công sức trên luồng giao diện người dùng. Cả hai đều sử dụng DiffUtil.
  • SortedList.ReplaceAll cho phép cập nhật tất cả dữ liệu trongSortedList. Danh sách này chạy tất cả ảnh động thích hợp để chèn, xoá, thay đổi và di chuyển (các thao tác được coi là xoá và chèn).
  • FragmentActivity và Fragment hiện triển khai ViewModelStoreOwner và hiện có thể được dùng với các hàm khởi tạo ViewModelProvider thay cho việc sử dụng ViewModelProviders.of()
  • Mảnh hiện có phương thức requireContext(), requireActivity(), requireHost()requireFragmentManager(). Các phương thức này trả về đối tượng NonNull của phương thức lấy tương đương hoặc gửi IllegalStateException.
  • requireViewById(), một phiên bản khả năng tương thích @NonNull của findViewById() đã được thêm vào WindowCompat, ActivityCompatViewCompat. Các phiên bản này sẽ gửi IllegalArgumentException khi không thể tìm thấy mục tiêu.
  • Các phương thức LoaderCallbacks hiện có các chú giải @Nullable@NonNull thích hợp.
  • FileProvider hiện hỗ trợ getExternalMediaDirs() trên API 21 trở lên thông qua phần tử <external-media-path> mới.

Sửa lỗi

  • Mảnh khởi chạy Trình tải trong onCreate đã bị hỏng vòng đời bên trong ViewPager
  • LoaderManager gửi IllegalStateException trong onLoadCompletion
  • LoaderViewModel không xoá Trình tải trong onCleared
  • Không tìm thấy tệp lớp cho android.arch.lifecycle.ViewModelStoreOwner
  • DialogFragment onDismiss không được gọi ngay sau khiDismiss()
  • Biểu tượng cảm xúc cờ quốc gia không hoạt động trên các thiết bị có khoá phát hành khi sử dụng phông chữ có thể tải xuống
  • Thư viện lựa chọn ưu tiên sử dụng các thuộc tính không hoạt động trên các phiên bản Android cũ
  • Các loại cấu phần phần mềm testlib của MediaCompat được ghi lại không chính xác (vấn đề AOSP) 71559905)
  • Sự cố Google Sans trong TypefaceCompatUtil
  • Hiển thị hàm khởi tạo ArraySet nhận trong Bộ sưu tập.
  • updateApi sẽ xoá các tệp .ignore cần được duy trì
  • Các MainFragment thừa được tạo trong BrowseFragment
  • Xoá việc sử dụng tính năng phản chiếu từ CarRecyclerView
  • java.lang.IllegalStateException tại FragmentManagerImpl.checkStateThus
  • Nhận được (không có tài liệu) java.lang.SecurityException khi sử dụng android.support.v4.content.PermissionChecker.checkSelfPermission
  • RecyclerView IndexOutOfBoundsException vì State.mPreviousLayoutItemCount không bị xoá trong setAdapter (vấn đề AOSP 37657125)
  • Mảnh khởi chạy Trình tải trong onCreate đã bị hỏng vòng đời bên trong ViewPager (vấn đề AOSP 34831613)
  • FragmentManagerImpl.execSingleAction gặp sự cố

Bản sửa đổi 27.0.2

(Tháng 11 năm 2017)

Sửa lỗi

  • EmojiEditTextHelper ném NullPointerException.
  • IllegalStateException: Mảnh chưa được đính kèm.
  • Không thể đóng biểu tượng "Truyền" bật lên bằng cách nhấn vào vị trí bất kỳ trên màn hình.
  • MediaMetadataCompat ném BadParcelableException.

Bản phát hành bản sửa đổi 27.0.1

(Tháng 11 năm 2017)

Sửa lỗi

  • LifecycleRegistry hiện không đúng trạng thái sau khi startActivityForResult() được gọi. (Vấn đề 65665621)
  • Màu của các nút bị tắt quá sáng ở các cấp độ API cũ.
  • Sau khi người dùng cuộn, họ không thể nhấp vào một mục trong RecyclerView. (Vấn đề AOSP) 66996774)
  • Trong TalkBack, việc nhấp vào tuỳ chọn khác không khiến hệ thống thông báo cửa sổ bật lên mới hoặc thêm tiêu điểm vào các tuỳ chọn mới.

Bản phát hành bản sửa đổi 27.0.0

(Tháng 10 năm 2017)

Điểm khác biệt về API

Thay đổi về API

  • Chú giải tính chất rỗng đã được thêm vào nhiều API, bao gồm: Điều này có thể gây ra lỗi biên dịch Kotlin khi các loại dữ liệu trả về có tính chất rỗng không được xử lý đúng cách.
  • Fragment có thể sử dụng các phiên bản thư viện hỗ trợ của Transition để chuyển đổi mảnh, bao gồm cả chuyển đổi phần tử dùng chung.
  • Thư viện phân trang nội dung (android.support.content.ContentPager) hỗ trợ các nội dung phân trang hiển thị qua ContentProvider. Việc sử dụng thư viện này cho phép ứng dụng tránh được việc "hoán đổi cửa sổ con trỏ" liên quy trình tốn kém trên luồng giao diện người dùng, cung cấp thư viện tương thích cho tính năng Android 8.0.
  • ViewCompat nay thêm trình bao bọc cho các phương thức tự động điền, bao gồm getImportantForAutofill(), isImportantForAutofill(), setAutofillHints()setImportantForAutofill().
  • Leanback có các tính năng mới và hoàn thiện hơn, đồng thời mất một số lớp không dùng nữa, chẳng hạn như:
    • Giờ đây, Picker có thể sử dụng nhiều dòng phân cách giữa mỗi cột bằng phương thức setSeparators().
    • DiffCallback đã được thêm vào để cho phép ArrayObjectAdapter tận dụng dữ liệu đầu ra do DiffUtil cung cấp.
    • Bổ sung cơ sở hạ tầng để hỗ trợ các trình phát nội dung nghe nhìn có các chế độ điều khiển thay đổi, thêm các chế độ điều khiển tuỳ chọn cho thao tác tua đi, lặp lại, phát ngẫu nhiên, tiếp theo, trước và tua lại.
    • Xoá MediaControllerGlue, PlaybackControlGlue, PlaybackControlSupportGluePlaybackOverlayFragment.
  • Để thử nghiệm, tiện ích PollingCheck được chuyển từ AOSP CTS. Công cụ này thăm dò một điều kiện sẽ xảy ra trong một khoảng thời gian chờ.
  • Đã thêm cơ sở hạ tầng để hỗ trợ các quyền khi bắt đầu chạy trên Ứng dụng tức thì dành cho Android 5.0, bằng cách sử dụng PermissionCompatDelegate.
  • Hiện đã hỗ trợ các thẻ tuỳ chỉnh đáng tin cậy, cùng với khả năng xác định mối quan hệ giữa một ứng dụng và một URI gốc.
  • Đơn giản hoá việc hỗ trợ chế độ môi trường xung quanh trên Android Wear bằng cách sử dụng mảnh không có giao diện người dùng AmbientMode. Điều này cũng giúp việc hỗ trợ chế độ môi trường xung quanh tương thích với việc sử dụng Thành phần cấu trúc.
  • Nhóm Wear đang thu thập ý kiến phản hồi của nhà phát triển về sự thay đổi quan trọng này. Để biết thêm thông tin, hãy xem Ghi chú phát hành của Android Wear.
  • Một số lớp không dùng nữa đã bị xoá khi chúng tôi ngừng sử dụng các API cũ ở phiên bản trước phiên bản 14, chẳng hạn như android.support.v7.NotificationCompat (thay vào đó hãy sử dụng phiên bản 4 NotificationCompat), KeyEventCompat, ParallelExecutorCompat SearchViewCompat.
  • Hiện tại, bạn có thể xem hằng số siêu dữ liệu của tệp kê khai Wear đã di chuyển thông qua android.support.wear.utils.MetadataConstants.
  • Hiện tại, chúng tôi hỗ trợ chế độ môi trường xung quanh cho mọi Hoạt động, chứ không chỉ cho Activity (Hoạt động) trên WearableActivity. Để biết thêm thông tin, hãy xem tài liệu tham khảo về AmbientMode.
  • RoundedDrawable hiện hỗ trợ tính năng tăng cường XML.

Sửa lỗi

  • Ứng dụng gặp sự cố với thư viện hỗ trợ 27 và phông chữ có thể tải xuống
  • Phông chữ có thể tải xuống không hoạt động đối với các dự án mới được tạo sau khi cập nhật SDK
  • API SpeechRecognizer bị lỗi trong bản nâng cấp mới nhất
  • Sự cố liên quan đến mảnh trong quá trình vẽ sau khi xoá Khung hiển thị động
  • phát nội dung đa phương tiện support-leanback-demos đều bị hỏng
  • Thư viện hỗ trợ Android sẽ thêm <meta-data> vào tệp kê khai
  • FontResourcesParserCompat phải hiểu được android: attrs
  • Leanback Keo không hỗ trợ phím nhập tạm dừng
  • Biểu tượng chưa được phân giải trong IDE khi nhiều gói có cùng một mã cấu phần phần mềm.
  • Ngoại lệ con trỏ rỗng trong CarExtensionser
  • Đặt PlaybackState / phát ngẫu nhiên không đúng sau khi tạo MediaController
  • Các áp phích mặc định của cụm thư viện đang chạy trên cụm tiếp theo trong khi điều hướng
  • Siêu dữ liệu của thẻ đề xuất bị cắt
  • IllegalArgumentException tại RecyclerView.attachViewToParent()
  • ClassNotFoundException khi unmarshalling SavedState (vấn đề AOSP 37133281)
  • Tiêu điểm bị kẹt trong RecyclerView
  • Khắc phục lỗi ANR trong Leanback LayoutManager

Bản phát hành bản sửa đổi 26.1.0

(Tháng 9 năm 2017)

Đây là bản phát hành đặc biệt để tích hợp Thư viện hỗ trợ với Lifecycles (Vòng đời) trong Architecture Components. Nếu không sử dụng thư viện Lifecycle, bạn không cần cập nhật từ phiên bản 26.0.2. Để biết thêm thông tin, hãy xem Ghi chú phát hành của Thành phần kiến trúc.

Nội dung thay đổi quan trọng:

Bản phát hành bản sửa đổi 26.0.2

(Tháng 8 năm 2017)

Sửa lỗi

  • Biểu tượng trình đơn đã được làm phẳng trên Thư viện hỗ trợ 26.0.0
  • GuidedAction.multilineDescription không hoạt động đúng cách với Leanback

Bản phát hành bản sửa đổi 26.0.1

(Tháng 8 năm 2017)

Sửa lỗi

  • FontCompat 26.0.0 gặp sự cố trên thiết bị O-MR1
  • Thư viện hỗ trợ thiết kế 26.0.0 không được bao gồm hỗ trợ multidex (vấn đề 63999442))
  • AppBarLayout hiện có khoảng đệm trái kể từ phiên bản 26.0.0
  • Tính năng điều hướng PlaybackTransportControl bị lỗi
  • Fragment.onCreateView được gọi đôi khi trước khi onCreate hoàn tất
  • android.os.BadParcelableException: ClassNotFoundException khi huỷ các thao tác: android.support.v4.media.MediaMetadataCompat

Bản phát hành bản sửa đổi 26.0.0

(Tháng 7 năm 2017)

Lưu ý quan trọng: Các thư viện hỗ trợ hiện đã có trong kho lưu trữ Maven của Google. Bạn không cần tải kho lưu trữ hỗ trợ xuống từ Trình quản lý SDK. Để biết thêm thông tin, hãy xem phần Thiết lập thư viện hỗ trợ.

Nội dung thay đổi quan trọng:

  • Phiên bản SDK tối thiểu đã tăng lên 14. Do đó, nhiều API chỉ tồn tại để tương thích với các cấp độ API trước 14 đã không được dùng nữa. Các ứng dụng của các API này cần chuyển sang các API tương đương với khung như đã nêu trên trang tham khảo cho từng API không dùng nữa.
  • Thư viện giao diện người dùng Wear chứa các lớp giúp bạn triển khai các mẫu và bố cục hoạt động trên thiết bị Wear. Để biết thêm thông tin, hãy xem bài viết Sử dụng Thư viện giao diện người dùng Wear.
  • Mô-đun hỗ trợ của phần trăm không còn được dùng nữa. Các ứng dụng của mô-đun này nên di chuyển sang tiện ích ConstraintLayout mới. Tiện ích này được cung cấp dưới dạng một cấu phần phần mềm riêng trong Trình quản lý SDK.
  • android.support.v7.app.NotificationCompat và các lớp chứa đã ngừng hoạt động và sẽ bị xoá trong bản phát hành sau này:

API mới

  • Cờ boolean fastScrollEnabled mới cho RecyclerView. Nếu được bật, bạn phải đặt fastScrollHorizontalThumbDrawable, fastScrollHorizontalTrackDrawable, fastScrollVerticalThumbDrawablefastScrollVerticalTrackDrawable.

Điểm khác biệt về API

Sửa lỗi

  • Vòng lặp vô hạn trong RecyclerView.toString()
  • ResourceNotFoundException chạy dự án Kotlin trên AVD API 16 sau khi nâng cấp lên Canary 6
  • java.lang.AssertionError trong chế độ xem thiết kế với thư viện hỗ trợ 26.0.0-beta2
  • Bản xem trước bố cục của Android Studio bị lỗi đối với tiện ích Thư viện hỗ trợ
  • Preference.setSingleLineTitle() sẽ bị bỏ qua nếu Preference không được tạo bằng các thuộc tính
  • Chú thích "Since" của DAC không chính xác đối với các bản sửa đổi 25.3.0 / 25.4.0 của Thư viện hỗ trợ
  • ResourceCompat.getFont() trả về ngoại lệ
  • Tiêu đề thanh công cụ không được in đậm
  • Tự động định cỡ bằng maxLines tạo ra kết quả ngoài dự kiến
  • NullPointerException trong TextView.checkForRelayout()
  • AppCompatTextViewAutoSizeHelper.setRawTextSize() gọi requestLayout() trong bố cục
  • EmojiAppCompatTextView gặp sự cố
  • TextView tự động định kích thước không tự động điều chỉnh khi văn bản thay đổi
  • Lỗi màn hình trong Instacart
  • Không được hỗ trợHoạt động ngoại lệ trong MenuItemCompat
  • NotificationCompat không trích xuất đầy đủ các hành động trên API 24 trở lên
  • Các vấn đề về neo CoordinatorLayout khi cập nhật bố cục