Câu trả lời ngắn gọn: Đừng làm điều đó.
Thiết kế lại ứng dụng của bạn để ứng dụng có thể chạy ở cả chế độ dọc và ngang. Không có giao diện người dùng nào không thể được thiết kế để hoạt động ở cả dọc và ngang; chỉ những nhà phát triển lười biếng hoặc không tưởng tượng.
Lý do tại sao khá đơn giản. Bạn muốn ứng dụng của mình có thể được sử dụng bởi càng nhiều đối tượng càng tốt trên càng nhiều thiết bị khác nhau càng tốt. Bằng cách buộc một hướng màn hình cụ thể, bạn ngăn ứng dụng của bạn chạy (có thể sử dụng) trên các thiết bị không hỗ trợ hướng đó và bạn làm nản lòng và xa lánh những khách hàng tiềm năng thích một hướng khác.
Ví dụ: Bạn thiết kế ứng dụng của mình để buộc chế độ dọc. Một khách hàng tải xuống ứng dụng trên thiết bị 2 trong 1 mà họ sử dụng chủ yếu ở chế độ ngang.
Hậu quả 1: Ứng dụng của bạn không sử dụng được hoặc khách hàng của bạn buộc phải tháo gỡ thiết bị của họ, xoay thiết bị và sử dụng nó theo hướng không quen thuộc hoặc thoải mái với họ.
Hậu quả 2: Khách hàng bị thất vọng bởi thiết kế không trực quan của ứng dụng của bạn và tìm thấy một giải pháp thay thế hoặc bỏ hoàn toàn ứng dụng.
Tôi đang chiến đấu với điều này với một ứng dụng ngay bây giờ và là một người tiêu dùng và nhà phát triển, tôi ghét nó. Ứng dụng này cũng hữu ích, tuyệt vời như các tính năng mà nó cung cấp, tôi hoàn toàn ghét ứng dụng này vì nó buộc tôi phải sử dụng một định hướng đối nghịch với mọi cách khác mà tôi sử dụng thiết bị của mình.
Bạn không muốn khách hàng ghét ứng dụng của bạn.
Tôi biết điều này không trực tiếp trả lời câu hỏi, vì vậy tôi muốn giải thích chi tiết hơn cho những người tò mò.
Có một xu hướng cho các nhà phát triển là thực sự giỏi trong việc viết mã và thực sự khủng khiếp trong thiết kế. Câu hỏi này, mặc dù nghe giống như một câu hỏi về mã và người hỏi chắc chắn cảm thấy đó là một câu hỏi về mã, thực sự là một câu hỏi thiết kế.
Câu hỏi thực sự là "Tôi có nên khóa hướng màn hình trong ứng dụng của mình không?" Người hỏi đã chọn thiết kế giao diện người dùng để hoạt động và trông chỉ đẹp ở chế độ dọc. Tôi nghi ngờ đó là để tiết kiệm thời gian phát triển hoặc vì quy trình làm việc của ứng dụng đặc biệt thuận lợi cho bố cục dọc (phổ biến cho các trò chơi di động). Nhưng những lý do đó bỏ qua tất cả các yếu tố thực sự quan trọng thúc đẩy thiết kế phù hợp.
Sự tham gia của khách hàng - bạn muốn khách hàng của bạn cảm thấy được kéo vào ứng dụng của bạn, không bị đẩy ra khỏi ứng dụng. Ứng dụng sẽ chuyển đổi suôn sẻ từ bất cứ điều gì khách hàng của bạn đang làm trước khi mở ứng dụng của bạn. (Đây là lý do hầu hết các nền tảng có nguyên tắc thiết kế nhất quán, vì vậy hầu hết các ứng dụng trông ít nhiều giống nhau mặc dù chúng không phải như vậy.)
Phản hồi của khách hàng - bạn muốn khách hàng phản ứng tích cực với ứng dụng của bạn. Họ nên tận hưởng việc sử dụng nó. Ngay cả khi đó là một ứng dụng trả lương cho công việc, họ vẫn nên vui mừng khi mở nó và đồng hồ. Ứng dụng sẽ tiết kiệm thời gian của khách hàng của bạn và giảm sự thất vọng về các lựa chọn thay thế. (Các ứng dụng gây khó chịu cho người dùng gây phẫn nộ đối với ứng dụng của bạn, điều này gây phẫn nộ với thương hiệu của bạn.)
Chuyển đổi khách hàng - bạn muốn khách hàng của mình có thể nhanh chóng và dễ dàng chuyển từ duyệt sang tương tác. Đây là mục tiêu cuối cùng của bất kỳ ứng dụng nào, để chuyển đổi hiển thị thành doanh thu. (Ứng dụng không tạo doanh thu là lãng phí thời gian của bạn để xây dựng, từ góc độ kinh doanh.)
Giao diện người dùng được thiết kế kém làm giảm sự tham gia và phản hồi của khách hàng dẫn đến doanh thu thấp hơn. Trong một thế giới tập trung vào thiết bị di động (và đặc biệt về chủ đề chế độ hiển thị dọc / ngang), điều này giải thích tại sao thiết kế web đáp ứng lại là một vấn đề lớn như vậy. Walmart Canada đã giới thiệu thiết kế đáp ứng trên trang web của họ vào tháng 11 năm 2013 và thấy tỷ lệ chuyển đổi khách hàng tăng 20% . O'Neill Quần áo đã triển khai thiết kế web đáp ứng và doanh thu từ khách hàng sử dụng thiết bị iOS tăng 101,25% và 591,42% từ khách hàng sử dụng thiết bị Android .
Ngoài ra còn có xu hướng các nhà phát triển tập trung vào việc thực hiện một giải pháp cụ thể (chẳng hạn như khóa hướng hiển thị) và hầu hết các nhà phát triển trên trang web này sẽ rất vui mừng khi giúp triển khai giải pháp đó, mà không cần hỏi liệu đó có phải là tốt nhất không giải pháp cho vấn đề.
Khóa hướng màn hình của bạn là thiết kế UI tương đương với việc thực hiện vòng lặp do-while. Bạn có thực sự chắc chắn rằng bạn muốn làm theo cách đó, hoặc có một sự thay thế tốt hơn?
Đừng ép ứng dụng của bạn vào một chế độ hiển thị. Đầu tư thêm thời gian và công sức để làm cho nó đáp ứng.