Android Studio 3.6.
Chcę, aby moja aplikacja była zawsze w portrait
trybie. Więc w moim AndroidMainfest.xml
:
<activity
android:name=".activity.SplashActivity"
android:screenOrientation="portrait">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
Uruchamiam aplikację i SplashActivity
pokazuje w portrait
trybie. Miły. Ale edytor pokazuje następujący błąd:
Expecting android:screenOrientation="unspecified"
Dlaczego?
android
android-manifest
screen-orientation
subskrybent
źródło
źródło
wpływa tylko na Android Studio 3.6+
Na czym polega problem? Ten problem występuje, ponieważ system Android chce, aby użytkownik sam kontrolował orientację aplikacji, nie zaleca się ograniczania orientacji aplikacji, na przykład jeśli użytkownik chce korzystać z aplikacji w orientacji poziomej, po prostu odwraca urządzenie, a czujniki wykonają pracę, ale gdy deweloper ogranicza orientację ekranu, nawet gdy działa czujnik obrotu, aplikacja pozostanie we wstępnie zdefiniowanym stanie, w sposób ograniczający możliwości urządzenia użytkownika.
Co zrobić teraz? Masz dwie opcje., Po pierwsze, zignoruj błąd, ponieważ nie spowoduje to niepowodzenia kompilacji, nawet ja robię to samo, a generowanie apk / aab jest jak zwykle Inną opcją jest zapewnienie układów poziomych lub obsługa rotacji, jak w niektórych aplikacje, które rozpoznają zmianę orientacji, poproszą użytkownika o zmianę orientacji, ponieważ aplikacja nie jest obsługiwana w takiej orientacji
Może się to zmienić w przyszłości => obecnie nie wpływa na nasz proces kompilacji, ale może się zmienić w przyszłości
źródło
W Android studio 3.6.0 wydaje mi się, że chcą, aby użytkownik obsługiwał orientację i zachęcał programistę do korzystania z ViewModel . Pozwól mi wyjaśnić szczegółowo screenOrientation
android:screenOrientation="portrait"
da ci błąd, który musisz podać
android:screenOrientation="fullSensor" or android:screenOrientation="unspecified"
fullSensor Oznacza, że albo masz opcję „Obróć”, albo nie, zmieni orientację w zależności od tego, jak poruszasz telefonem
nieokreślony Oznacza, że jeśli masz WŁĄCZONY Obrót, pozostanie on tylko w tej orientacji, a jeśli nie, zmieni orientację w oparciu o ruch telefonu.
źródło
źródło
Zastosowałem poniższą procedurę. Działa dla mnie idealnie. W Android studio 3.6.0 myślę, że chcą, aby użytkownik zajął się orientacją i zachęcił dewelopera do korzystania z ViewModel. Zastosuj poniższą procedurę, aby to zignorować.
Najpierw dodaj:
w znaczniku manifestu.
Po drugie, dodaj
w znaczniku aplikacji. Happy Coding.
źródło
Znalazłem 2 sposoby rozwiązania tego problemu
Pierwszy,
Po drugie, `
źródło
Dodaj następujący wiersz po
android:screenOrientation="portrait"
Następnie kliknij Alt+Enter
źródło
Napotkałem ten problem, zgodnie z moim wymaganiem, niektóre działania będą obsługiwały obie orientacje, a resztki pozostaną w pozycji pionowej. W tym przypadku rozwiązałem następujące kroki:
Przypadek 1: - Aby zablokować orientację
Krok 1: Dodaj następujący wiersz Znacznik aplikacji w AndroidManifest.xml
Krok 2: Jeśli chcesz zablokować orientację ekranu w pionie lub w poziomie, dodaj następujący wiersz w tagu aktywności
Przypadek 2: Załóżmy, że chcesz zezwolić na orientację w konkretnej działalności i mieć specyficzny projekt krajobrazu
Krok 1: Usuń wartość Orientacji w zmianach konfiguracji i usuń orientację ekranu, jeśli istnieje ona z tagu aktywności, a moja osobista sugestia (LifecycleObserver) używa w Aktywności, aby nie tracić wartości podczas zmiany orientacji.
W ten sposób rozwiązuję ten problem, mam nadzieję, że to pomaga, dzięki i szczęśliwego kodowania.
źródło
Wypróbuj to rozwiązanie:
Mam nadzieję że to pomoże!
źródło
możesz użyć tego kodu:
źródło
Spróbuj umieścić następujące w tagu aktywności
źródło