Chế độ cửa sổ trên máy tính cho phép người dùng chạy đồng thời nhiều ứng dụng trong các cửa sổ ứng dụng có thể đổi kích thước để có trải nghiệm linh hoạt, giống như trên máy tính.
Trong hình 1, bạn có thể thấy cách sắp xếp màn hình khi bật chế độ cửa sổ trên máy tính. Những điều cần lưu ý:
- Người dùng có thể chạy đồng thời nhiều ứng dụng cạnh nhau.
- Thanh tác vụ nằm ở vị trí cố định ở cuối màn hình cho thấy các ứng dụng đang chạy. Người dùng có thể ghim ứng dụng để truy cập nhanh.
- Thanh tiêu đề mới có thể tuỳ chỉnh trang trí đầu mỗi cửa sổ bằng các nút điều khiển như thu nhỏ và phóng to.
Theo mặc định, các ứng dụng sẽ mở ở chế độ toàn màn hình trên máy tính bảng Android. Để chạy một ứng dụng trong chế độ cửa sổ trên máy tính, hãy nhấn và giữ ô điều khiển ở đầu màn hình, rồi kéo ô điều khiển trong giao diện người dùng, như minh hoạ trong hình 2.
Khi một ứng dụng đang mở trong cửa sổ trên máy tính, các ứng dụng khác cũng sẽ mở trong cửa sổ trên máy tính.
Người dùng cũng có thể gọi cửa sổ máy tính từ trình đơn xuất hiện bên dưới tay cầm cửa sổ khi bạn nhấn hoặc nhấp vào tay cầm hoặc sử dụng phím tắt phím Meta (Windows, Command hoặc Search) + Ctrl + Down.
Người dùng thoát khỏi cửa sổ màn hình bằng cách đóng tất cả cửa sổ đang hoạt động hoặc bằng cách giữ tay điều khiển cửa sổ ở đầu cửa sổ màn hình và kéo ứng dụng lên đầu màn hình. Phím tắt Meta + H cũng thoát khỏi chế độ cửa sổ trên máy tính và chạy lại các ứng dụng ở chế độ toàn màn hình.
Để quay lại chế độ cửa sổ trên màn hình, hãy nhấn hoặc nhấp vào ô không gian màn hình trong màn hình Gần đây.
Khả năng đổi kích thước và chế độ tương thích
Trong chế độ cửa sổ trên máy tính, các ứng dụng bị khoá hướng có thể tự do thay đổi kích thước. Điều đó có nghĩa là ngay cả khi một hoạt động được khoá theo hướng dọc, người dùng vẫn có thể đổi kích thước ứng dụng thành cửa sổ theo hướng ngang.
Các ứng dụng được khai báo là không thể đổi kích thước (tức là resizeableActivity = false
) sẽ có giao diện người dùng được điều chỉnh theo tỷ lệ trong khi vẫn giữ nguyên tỷ lệ khung hình.
Các ứng dụng máy ảnh khoá hướng hoặc được khai báo là không thể đổi kích thước sẽ có cách xử lý đặc biệt cho kính ngắm máy ảnh: cửa sổ có thể đổi kích thước hoàn toàn, nhưng kính ngắm vẫn giữ nguyên tỷ lệ khung hình. Bằng cách giả định rằng các ứng dụng luôn chạy theo hướng dọc hoặc ngang, các ứng dụng sẽ mã hoá cứng hoặc đưa ra các giả định dẫn đến việc tính toán sai hướng hoặc tỷ lệ khung hình của bản xem trước hoặc hình ảnh đã chụp, dẫn đến hình ảnh bị kéo giãn, nghiêng hoặc lộn ngược.
Cho đến khi các ứng dụng sẵn sàng triển khai kính ngắm máy ảnh thích ứng hoàn toàn, chế độ xử lý đặc biệt sẽ mang lại trải nghiệm người dùng cơ bản hơn, giúp giảm thiểu tác động mà các giả định sai lầm có thể gây ra.
Để tìm hiểu thêm về chế độ tương thích cho ứng dụng máy ảnh, hãy xem bài viết Chế độ tương thích với thiết bị.
Phần lồng ghép tiêu đề có thể tuỳ chỉnh
Tất cả các ứng dụng chạy trong chế độ cửa sổ trên máy tính đều có thanh tiêu đề, ngay cả ở chế độ chìm.
Đảm bảo nội dung của ứng dụng không bị thanh tiêu đề che khuất.
Thanh tiêu đề là một loại phần lồng ghép thanh chú thích: androidx.compose.foundation.layout.WindowInsets.Companion.captionBar()
; trong các thành phần hiển thị, WindowInsets.Type.captionBar()
là một phần của các thanh hệ thống.
Bạn có thể tìm hiểu thêm về cách xử lý các phần lồng ghép trong bài viết Hiển thị nội dung tràn viền trong ứng dụng và xử lý các phần lồng ghép cửa sổ trong Compose.
Bạn cũng có thể tuỳ chỉnh thanh tiêu đề. Android 15 đã ra mắt loại giao diện APPEARANCE_TRANSPARENT_CAPTION_BAR_BACKGROUND
để làm cho thanh tiêu đề trở nên trong suốt nhằm cho phép các ứng dụng vẽ nội dung tuỳ chỉnh bên trong thanh tiêu đề.
Sau đó, ứng dụng sẽ chịu trách nhiệm tạo kiểu cho phần trên cùng của nội dung để trông giống như thanh chú thích (nền, nội dung tuỳ chỉnh, v.v.), ngoại trừ các thành phần chú thích hệ thống (nút đóng và phóng to) do hệ thống vẽ trên thanh chú thích trong suốt ở đầu ứng dụng.
Các ứng dụng có thể bật/tắt giao diện của các thành phần hệ thống bên trong chú thích cho giao diện sáng và tối bằng cách sử dụng APPEARANCE_LIGHT_CAPTION_BARS
, tương tự như cách bật/tắt thanh trạng thái và thanh điều hướng.
Android 15 cũng giới thiệu phương thức WindowInsets#getBoundingRects()
cho phép các ứng dụng tự kiểm tra chi tiết hơn các phần lồng ghép của thanh chú thích.
Các ứng dụng có thể phân biệt giữa các khu vực mà hệ thống vẽ các thành phần hệ thống và các khu vực không được sử dụng mà ứng dụng có thể đặt nội dung tuỳ chỉnh mà không chồng chéo các thành phần hệ thống.
Danh sách đối tượng Rect
do API trả về cho biết các vùng hệ thống cần tránh. Mọi không gian còn lại (được tính bằng cách trừ các hình chữ nhật khỏi Phần lồng ghép của thanh chú thích) là nơi ứng dụng có thể vẽ mà không chồng chéo các thành phần hệ thống và có khả năng nhận dữ liệu đầu vào.
Hỗ trợ chế độ đa nhiệm và nhiều phiên bản
Tính năng đa nhiệm là cốt lõi của chế độ cửa sổ trên máy tính và việc cho phép nhiều phiên bản của ứng dụng có thể làm tăng đáng kể năng suất của người dùng.
Android 15 giới thiệu PROPERTY_SUPPORTS_MULTI_INSTANCE_SYSTEM_UI, mà các ứng dụng có thể đặt để chỉ định rằng giao diện người dùng hệ thống sẽ hiển thị cho ứng dụng để cho phép ứng dụng đó chạy dưới dạng nhiều phiên bản.
Quản lý các phiên bản ứng dụng bằng cử chỉ kéo
Ở chế độ nhiều cửa sổ, người dùng có thể bắt đầu một thực thể ứng dụng mới bằng cách kéo một phần tử thành phần hiển thị ra khỏi cửa sổ của ứng dụng. Người dùng cũng có thể di chuyển các phần tử giữa các thực thể của cùng một ứng dụng.
Android 15 giới thiệu hai cờ để tuỳ chỉnh hành vi kéo và thả:
DRAG_FLAG_START_INTENT_SENDER_ON_UNHANDLED_DRAG
: Cho biết rằng thao tác kéo chưa được xử lý phải được uỷ quyền cho hệ thống để bắt đầu nếu không có cửa sổ hiển thị nào xử lý thao tác thả. Khi sử dụng cờ này, phương thức gọi phải cung cấpClipData
vớiItem
chứaIntentSender
không thể thay đổi cho một hoạt động sẽ được khởi chạy (xemClipData.Item.Builder#setIntentSender()
). Hệ thống có thể khởi chạy ý định hoặc không dựa trên các yếu tố như kích thước màn hình hiện tại hoặc chế độ cửa sổ. Nếu hệ thống không khởi chạy ý định, ý định sẽ bị huỷ bằng cách kéo và thả thông thường.DRAG_FLAG_GLOBAL_SAME_APPLICATION
: Cho biết thao tác kéo có thể vượt qua ranh giới cửa sổ (đối với nhiều phiên bản của cùng một ứng dụng).Khi
startDragAndDrop()
được gọi với tập hợp cờ này, chỉ các cửa sổ hiển thị thuộc cùng một ứng dụng mới có thể tham gia vào thao tác kéo và nhận nội dung đã kéo.
Các phương pháp tối ưu hoá khác
Tuỳ chỉnh quá trình khởi chạy ứng dụng và chuyển đổi ứng dụng từ chế độ cửa sổ trên máy tính sang chế độ toàn màn hình.
Chỉ định kích thước và vị trí mặc định
Không phải ứng dụng nào (ngay cả khi có thể đổi kích thước) cũng cần có cửa sổ lớn để mang lại giá trị cho người dùng.
Bạn có thể sử dụng phương thức ActivityOptions#setLaunchBounds()
để chỉ định kích thước và vị trí mặc định khi một hoạt động được khởi chạy.
Chuyển sang chế độ toàn màn hình từ không gian máy tính
Ứng dụng có thể chuyển sang chế độ toàn màn hình bằng cách gọi Activity#requestFullScreenMode()
.
Phương thức này hiển thị ứng dụng ở chế độ toàn màn hình ngay từ cửa sổ máy tính.