Hướng dẫn về các tính năng của thư viện hỗ trợ

Lưu ý: Với bản phát hành Android 9.0 (API cấp 28), có một phiên bản thư viện hỗ trợ mới có tên là AndroidX, một phần của Jetpack. Thư viện AndroidX chứa thư viện hỗ trợ hiện có và cũng bao gồm các thành phần Jetpack mới nhất.

Bạn có thể tiếp tục sử dụng thư viện hỗ trợ. Các cấu phần phần mềm cũ (những phiên bản 27 trở về trước và được đóng gói dưới dạng android.support.*) sẽ vẫn có trên Google Maven. Tuy nhiên, toàn bộ quá trình phát triển thư viện mới sẽ diễn ra trong thư viện AndroidX.

Bạn nên sử dụng thư viện AndroidX trong tất cả các dự án mới. Bạn cũng nên cân nhắc việc di chuyển các dự án hiện có sang AndroidX.

Thư viện hỗ trợ cung cấp nhiều lớp để xây dựng ứng dụng, từ các thành phần cơ bản của ứng dụng, các tiện ích giao diện người dùng, đến cách xử lý nội dung nghe nhìn và các thành phần của ứng dụng dành cho TV. Nhiều lớp trong số này là cách triển khai có khả năng tương thích ngược, nhưng một vài trong số đó là những tính năng mới.

Tài liệu này cung cấp thông tin tổng quan về các danh mục tính năng quan trọng có trong thư viện hỗ trợ và các lớp cụ thể mà bạn nên biết khi xây dựng ứng dụng.

Để biết thông tin về cách thêm mã thư viện hỗ trợ vào dự án phát triển ứng dụng của bạn, hãy xem phần Thiết lập thư viện hỗ trợ. Để biết thông tin về cách đưa các gói thư viện hỗ trợ cụ thể vào dự án của bạn, hãy xem nội dung Gói thư viện hỗ trợ.

Thành phần ứng dụng

Các lớp Thư viện hỗ trợ này cung cấp cách triển khai có khả năng tương thích ngược với các tính năng cốt lõi và quan trọng của nền tảng. Những cách triển khai này thường mở rộng các phiên bản cũ hơn của lớp để xử lý các phương thức và tính năng mới được thêm vào các bản phát hành mới hơn của nền tảng. Một số lớp trong số này đã hoàn thành, phương thức triển khai tĩnh của các API khung.

  • Hoạt động
    • ActivityCompat – Bao gồm cách triển khai khả năng tương thích ngược cho các tính năng chính của hoạt động gần đây, chẳng hạn như Quyền khi bắt đầu chạy và chuyển đổi ảnh động.
    • FragmentActivity – Cung cấp phương thức triển khai có khả năng tương thích ngược cho các hoạt động sử dụng phiên bản thư viện hỗ trợ của các API Fragment Loader.
    • AppCompatActivity – Cung cấp giao diện màu Material, tính năng phủ màu tiện ích và hỗ trợ thanh ứng dụng cho các thiết bị cũ. Để sử dụng lớp này, bạn phải sử dụng các giao diện Theme.AppCompat để có bản trình bày hình ảnh nhất quán.
  • Fragment – Cung cấp cách triển khai độc lập cho lớp Fragment của khung. Bạn phải sử dụng lớp này với FragmentActivity.
  • ContextCompat – Hỗ trợ các tính năng được ra mắt trong các bản phát hành mới hơn của lớp Context, bao gồm cả tính năng hỗ trợ quyền, quyền truy cập vào tệp và thông tin màu.
  • IntentCompat – Hỗ trợ các tính năng được ra mắt trong các bản phát hành mới hơn của lớp Intent, bao gồm cả các phương thức để chọn và bắt đầu các hoạt động cụ thể.
  • Loader – Cung cấp phương thức triển khai tĩnh của lớp Loader của khung, đồng thời là lớp cơ sở cho các lớp hỗ trợ AsyncTaskLoaderCursorLoader.
  • Preference – Lớp này và các lớp con của lớp này cung cấp các cách triển khai giao diện người dùng cho chế độ cài đặt ứng dụng theo cách tương thích ngược.
  • ContentResolverCompat – Hỗ trợ các tính năng được ra mắt trong các bản phát hành gần đây của lớp ContentResolver, cụ thể là phương thức query() với tính năng hỗ trợ huỷ một truy vấn đang diễn ra.

Giao diện người dùng

Các lớp thư viện hỗ trợ này cung cấp cách triển khai các tiện ích và hành vi chính trên giao diện người dùng, đồng thời giúp bạn tạo giao diện ứng dụng hiện đại hơn trên các thiết bị cũ. Một vài tiện ích trong số này chỉ có sẵn thông qua thư viện hỗ trợ.

Vùng chứa bố cục đa năng

Các lớp hỗ trợ này cung cấp các vùng chứa giao diện người dùng có thể điều chỉnh cho phù hợp với các trường hợp sử dụng thiết kế khác nhau.

  • RecyclerView – Tạo bố cục để hiển thị các danh sách dài, sử dụng một chiến lược để tránh mức sử dụng bộ nhớ cao. Lớp này cho phép bạn tạo khung hiển thị cửa sổ giới hạn trong một tập dữ liệu lớn hơn, nhờ đó tránh sử dụng nhiều bộ nhớ khi hiển thị danh sách. Để biết thêm thông tin về cách sử dụng RecyclerView, hãy xem hướng dẫn về Recycler View (Khung hiển thị tái chế).
  • ViewPager – Cung cấp bố cục cho phép người dùng lật sang trái và sang phải qua các trang dữ liệu.
  • GridLayout – Cung cấp một bố cục có các phần tử con trong một lưới hình chữ nhật, hỗ trợ các khoảng thời gian tuỳ ý của các ô liền kề và phân phối không gian linh hoạt. Lớp này cung cấp phiên bản tương thích ngược của lớp GridLayout, ra mắt trong Android 4.0 (API cấp 14).
  • PercentFrameLayoutPercentRelativeLayout – Cung cấp các bố cục hỗ trợ kích thước và lề dựa trên tỷ lệ phần trăm cho các chế độ xem và nội dung con.

Lưu ý: Các lớp ViewPager, RecyclerView, PercentFrameLayoutPercentRelativeLayout chỉ có trong Thư viện hỗ trợ.

Vùng chứa bố cục chuyên dụng

Các lớp hỗ trợ này cung cấp cách triển khai tương thích cho các mẫu bố cục cụ thể, chẳng hạn như thành phần hiển thị ngăn có thể kéo từ cạnh màn hình, bảng trượt và danh sách lồng trong danh sách.

  • DrawerLayout – Tạo bố cục cho phép các chế độ xem ngăn tương tác được kéo ra từ cạnh của cửa sổ chế độ xem.
  • SlidingPaneLayout – Cung cấp bố cục theo chiều ngang, nhiều ngăn để sử dụng ở cấp cao nhất của giao diện người dùng ứng dụng, giúp tạo bố cục có thể thích ứng mượt mà trên nhiều kích thước màn hình, mở rộng trên màn hình lớn hơn và thu gọn để vừa với màn hình nhỏ hơn.
  • NestedScrollView – Bố cục cuộn hỗ trợ lồng các thành phần hiển thị cuộn khác, cho phép bạn tạo danh sách với các mục chứa danh sách con bổ sung. Những danh sách lồng nhau này có thể chứa các mục cuộn theo chiều ngang hoặc chiều dọc, tách biệt với danh sách gốc.
  • SwipeRefreshLayout – Cung cấp bố cục hỗ trợ việc làm mới dữ liệu cho danh sách hoặc bố cục khác bằng cử chỉ vuốt ngón tay.

Khung hiển thị, hộp thoại và tiện ích

Thư viện hỗ trợ cung cấp một số lớp để hiển thị nội dung và cung cấp các phần tử tương tác của người dùng trong một bố cục.

  • CardView – Một lớp tuỳ chỉnh của thư viện hỗ trợ để tạo thẻ hiển thị kiểu Material Design. Lớp này dựa trên FrameLayout với các góc bo tròn và bóng đổ.
  • AppCompatDialogFragment – Cung cấp hộp thoại được tạo kiểu nhất quán bằng cách mở rộng DialogFragment và sử dụng AppCompatDialog.
  • NotificationCompat – Hỗ trợ các kiểu thông báo mới theo cách tương thích ngược.
  • SearchView – Cung cấp một lớp để người dùng nhập cụm từ tìm kiếm và gửi yêu cầu đến nhà cung cấp dịch vụ tìm kiếm. Nội dung này chủ yếu nhằm mục đích sử dụng trong thanh ứng dụng.

Material Design

Các thư viện hỗ trợ cung cấp một số lớp để triển khai các đề xuất về giao diện người dùng Material Design.

  • CoordinatorLayout – Cung cấp vùng chứa cấp cao nhất cho bố cục tích hợp các thành phần và hành vi Material Design. Bạn cũng có thể dùng lớp này làm vùng chứa cho hoạt động tương tác cụ thể với một hoặc nhiều khung hiển thị con.
  • AppBarLayout – Cung cấp cách triển khai nhiều tính năng cuộn trong khái niệm thanh ứng dụng của Material Design.
  • FloatingActionButton – Tạo nút nổi để hiển thị một loại hành động được quảng bá đặc biệt. Phần tử giao diện người dùng Material Design này được hiển thị dưới dạng một biểu tượng hình tròn nổi phía trên giao diện người dùng của ứng dụng. Để biết thêm thông tin, hãy xem nội dung Thêm nút hành động nổi.
  • DrawerLayout – Tạo một ngăn điều hướng – một bảng điều khiển giao diện người dùng hiển thị trình đơn điều hướng chính của ứng dụng. Biểu tượng này xuất hiện khi người dùng vuốt ngón tay từ cạnh trái của màn hình hoặc nhấn vào biểu tượng ngăn trong thanh ứng dụng. Để biết thêm thông tin, hãy xem phần Tạo một ngăn điều hướng.
  • TabLayout – Cung cấp bố cục để hiển thị các trang dạng thẻ. Tiện ích này được thiết kế để sử dụng với lớp ViewPager.
  • Snackbar – Cung cấp một tiện ích để hiển thị phản hồi gọn nhẹ về một thao tác bằng cách sử dụng cửa sổ bật lên của thanh thông báo nhanh.

Đồ hoạ

Gói android.support.graphics.drawable hỗ trợ cho vectơ vẽ được. Bằng cách sử dụng các vectơ vẽ được, bạn có thể thay thế nhiều thành phần PNG bằng một đồ hoạ vectơ duy nhất, được xác định trong XML.

VectorDrawableCompat hỗ trợ các vectơ vẽ được trên API cấp 9 trở lên. AnimatedVectorDrawableCompat hỗ trợ các vectơ vẽ được ở dạng ảnh động trên API cấp 11 trở lên.

Hỗ trợ tiếp cận

Gói android.support.v4.view.accessibility cung cấp các lớp tương thích để triển khai bộ tính năng hỗ trợ tiếp cận ra mắt trong API cấp 14 trở lên, cho phép các dịch vụ hỗ trợ tiếp cận quan sát và xác định hoạt động tương tác của người dùng với các mục hiển thị trên màn hình.

  • ExploreByTouchHelper – Cung cấp tính năng hỗ trợ tiếp cận trong một Khung hiển thị tuỳ chỉnh đại diện cho tập hợp các mục logic giống như khung hiển thị.

Phát nội dung nghe nhìn

Thư viện hỗ trợ Android cung cấp phiên bản cũ của chức năng bộ định tuyến nội dung nghe nhìn cho các thiết bị chạy phiên bản nền tảng cũ hơn Android 4.1 (API cấp 16). Các lớp này cho phép kiểm soát chế độ phát nội dung nghe nhìn trên các thiết bị Android được kết nối:

  • MediaRouter – Cho phép các ứng dụng kiểm soát việc định tuyến các kênh truyền thông và luồng từ thiết bị hiện tại đến loa ngoài và thiết bị đích.
  • MediaControllerCompat – Cho phép ứng dụng tương tác với một phiên nội dung nghe nhìn đang diễn ra. Các ứng dụng có thể cung cấp các nút điều khiển nội dung nghe nhìn thông qua cơ chế này và gửi các lệnh phát khác đến phiên đó.
  • MediaSessionCompat – Cung cấp giao diện điều khiển từ xa để phát nội dung đa phương tiện, cho phép tương tác với trình điều khiển nội dung đa phương tiện, phím âm lượng, nút nội dung đa phương tiện và bộ điều khiển truyền tải trong các ứng dụng khác hoặc trên thiết bị riêng biệt.

Ứng dụng truyền hình

SDK Android cung cấp các thư viện để hỗ trợ các hệ số hình dạng như màn hình lớn và bộ điều khiển liên kết. Một ứng dụng có thể dựa vào thư viện hỗ trợ phù hợp để cung cấp chức năng trên nhiều phiên bản nền tảng, đồng thời có thể cung cấp nội dung trên loa, màn hình bên ngoài và các thiết bị đích khác.

Ứng dụng Wear

SDK Android cung cấp các thư viện để hỗ trợ đồng hồ. Các thư viện này cung cấp chức năng cho các ứng dụng có sẵn cho người dùng bất cứ khi nào họ đeo đồng hồ.

Phần mềm tiện ích

Thư viện hỗ trợ Android cung cấp một số tính năng không được tích hợp vào khung này. Các thư viện này cung cấp hàng loạt tiện ích mà ứng dụng có thể dùng.