Krótka odpowiedź: nie rób tego.
Przeprojektuj aplikację, aby działała zarówno w trybie pionowym, jak i poziomym. Nie ma czegoś takiego jak interfejs użytkownika, którego nie można zaprojektować do pracy zarówno w pionie, jak iw krajobrazie; tylko leniwi lub pozbawieni wyobraźni programiści.
Powód jest raczej prosty. Chcesz, aby Twoja aplikacja była dostępna dla jak największej liczby odbiorców na jak największej liczbie różnych urządzeń. Wymuszając określoną orientację ekranu, uniemożliwiasz uruchamianie aplikacji (zwykle) na urządzeniach, które nie obsługują tej orientacji, i denerwujesz i wyobcujesz potencjalnych klientów, którzy wolą inną orientację.
Przykład: Projektujesz aplikację tak, aby wymuszać tryb portretowy. Klient pobiera aplikację na urządzenie 2 w 1, z którego korzysta głównie w trybie poziomym.
Konsekwencja 1: Twoja aplikacja jest bezużyteczna lub klient jest zmuszony oddokować swoje urządzenie, obrócić je i używać w orientacji, która nie jest dla nich znana ani wygodna.
Konsekwencja 2: Klient jest sfrustrowany nieintuicyjnym wyglądem Twojej aplikacji i znajduje alternatywę lub całkowicie ją zrzuca.
Walczę z tym teraz za pomocą aplikacji i jako konsument i programista nienawidzę tego. Choć aplikacja jest tak przydatna, jak fantastyczne są jej funkcje, absolutnie jej nie znoszę, ponieważ zmusza mnie do korzystania z orientacji przeciwnej do wszystkich innych sposobów korzystania z mojego urządzenia.
Nie chcesz, aby Twoi klienci nienawidzili Twojej aplikacji.
Wiem, że to nie odpowiada bezpośrednio na pytanie, więc chcę wyjaśnić to bardziej szczegółowo tym, którzy są ciekawi.
Deweloperzy mają tendencję do naprawdę dobrego pisania kodu i okropnego projektowania. To pytanie, choć brzmi jak pytanie kodowe, a pytający z pewnością czuje się jak pytanie kodowe, jest naprawdę pytaniem projektowym.
Pytanie naprawdę brzmi: „Czy powinienem zablokować orientację ekranu w mojej aplikacji?” Pytający zdecydował się zaprojektować interfejs, aby działał i wyglądał dobrze tylko w trybie portretowym. Podejrzewam, że miało to na celu zaoszczędzenie czasu programistycznego lub ponieważ przepływ pracy aplikacji szczególnie sprzyja układowi portretowemu (typowemu dla gier mobilnych). Ale te powody pomijają wszystkie naprawdę ważne czynniki, które motywują właściwy projekt.
Zaangażowanie klientów - chcesz, aby klienci czuli się wciągnięci w Twoją aplikację, a nie wypychani z niej. Aplikacja powinna płynnie przechodzić z tego, co robił klient przed jej otwarciem. (To jest powód, dla którego większość platform ma spójne zasady projektowania, więc większość aplikacji wygląda mniej więcej tak samo, choć nie muszą).
Reakcja klienta - chcesz, aby Twoi klienci pozytywnie reagowali na Twoją aplikację. Powinny z tego korzystać. Nawet jeśli jest to aplikacja płacowa do pracy, powinna być dla nich przyjemnością, aby ją otworzyć i zarejestrować. Aplikacja powinna oszczędzać klientom czas i redukować frustrację związaną z alternatywami. (Aplikacje, które denerwują użytkowników, budzą niechęć do Twojej aplikacji, która przeradza się w niechęć do Twojej marki).
Konwersja klientów - chcesz, aby Twoi klienci mogli szybko i łatwo przejść od przeglądania do interakcji. Jest to ostateczny cel każdej aplikacji, aby zamienić wyświetlenia na przychody. (Aplikacje, które nie generują przychodów, to strata czasu na budowanie z perspektywy biznesowej).
Źle zaprojektowany interfejs użytkownika zmniejsza zaangażowanie i reakcję klientów, co ostatecznie przekłada się na niższe przychody. W świecie zorientowanym na urządzenia mobilne (a zwłaszcza na temat trybów wyświetlania w orientacji pionowej / poziomej) wyjaśnia to, dlaczego projektowanie stron internetowych jest tak ważne. Walmart Canada wprowadził responsive design na swojej stronie internetowej w listopadzie 2013 roku i odnotował 20% wzrost konwersji klientów. O'Neill Clothing wdrożyło elastyczne projektowanie stron internetowych i przychody od klientów korzystających z urządzeń iOS wzrosły o 101,25% , a 591,42% od klientów korzystających z urządzeń z Androidem .
Deweloperzy mają również tendencję do skupiania się na wdrażaniu określonego rozwiązania (takiego jak blokowanie orientacji wyświetlania), a większość programistów na tej stronie z przyjemnością pomoże wdrożyć to rozwiązanie, nie zastanawiając się, czy jest to nawet najlepsze Rozwiązaniem problemu.
Zablokowanie orientacji ekranu jest równoważne z projektem interfejsu użytkownika implementującym pętlę „do-while”. Czy jesteś naprawdę pewien, że chcesz zrobić to w ten sposób, czy istnieje lepsza alternatywa?
Nie zmuszaj aplikacji do przejścia w tryb pojedynczego wyświetlania. Zainwestuj dodatkowy czas i wysiłek, aby szybko reagować.