Android 8.0'da kullanıcılar otomatik döndürme ve dikey döndürme arasında geçiş yapabiliyordu veya Görüntü ayarları'nı kullanarak modları kolayca ayarlayabilirsiniz. Android'de 9, istenmeyen döndürmeleri ortadan kaldırmak için dikey döndürme modu cihaz konumu değişse bile geçerli ekran döndürme Kullanıcılar tetikleyebilir veya gezinme çubuğunda yeni bir düğmeye basarak döndürmeyi manuel olarak yapabilirsiniz. Dikey modu döndürme kilidi olarak yeniden adlandırdık ve otomatik döndürme olduğunda etkinleşiyor kapalı olduğundan emin olun. Otomatik döndürme modunda herhangi bir değişiklik yoktur.
Cihaz döndürme kilit modundayken kullanıcılar ekranlarını
döndürme, görünür Etkinlik (mevcut sistem göz önünde bulundurulduğunda)
kısıtlamalar) sunulur. En üstteki Etkinlik'in birden fazla rotasyonda oluşturulabildiği durumlarda (ör.
aynı seçenekler, kilitli döndürme modunda da kullanılabilmelidir.
Etkinlik'in screenOrientation
şartlarına göre bazı istisnalar dışında
ayarını değiştirebilirsiniz.
Dönme kilidi modu, cihaz döndürüldüğünde gezinme çubuğunda bir düğme göstererek çalışır
anlamına gelir. Bunun için cihazın yön sensörü etkin kalmalıdır
Otomatik döndürme kapalıyken bile. Bu düğmeye dokunduğunuzda kullanıcı rotasyonu etkili bir şekilde belirlenir
tercihi (Settings.System.USER_ROTATION
). WindowManager, bunu kullanır
diğer ayrıntılarıyla birlikte görüntüleyebilirsiniz.
perspektifini değiştirin. WindowManager, kullanıcı rotasyonunu kullanmaya devam ediyor
değiştirme sırasında sistemi hangi rotasyonda
başka bir Etkinlik.
Etkinlikler arasında geçiş yaparken kullanıcı rotasyonu tercihi korunmalıdır. Ancak, çoğu telefon kullanıcısı yalnızca kısa bir süreliğine yatay olarak görünmek istediğinden doğal yön sapması ekledik. Kullanıcı rotasyonu cihazın doğal yönüne sıfırlanır. cihazın doğal yönünün değiştirilmesi. Çoğu telefonda cihazın doğal yönü dikey (0o) olmalıdır. Kullanıcı rotasyonu sıfırlanıyor sadece dikey yönlü bir uygulama kullanırken, telefonu kilitlediğinizde veya başlatıcı çalışma alanına dönülüyor.
Kullanıcılar için rotasyon etkileşimleri son on yılda pek değişmedi. Kullanıcı Sayısı Rotasyon geçmişi göz önüne alındığında bu özelliği bulmak zor olabilir. ve düğme konumlandırması hakkında daha fazla bilgi edinin. Bu nedenle, görüntülenen döndür düğmesi için giriş modu bulunuyor. Giriş yalnızca ilk birkaç düğme etkileşiminde gerçekleşir. Ardından, Giriş modu devre dışı.
Kaynak
Rotasyon önerileri desteği şuraya eklendi: Android 9 Değişikliklerin çoğu dosyalar.
services/.../server/policy/PhoneWindowManager.java
:WindowOrientationListener
çıkışını tüketen kancalar (MyOrientationListener
, izlemeden sorumlu sensörler (cihazın döndürülüp döndürülmediğini belirler)- Şu durumlarda bile
WindowOrientationListener
etkin kalır: otomatik döndürme devre dışı (bkz.needSensorRunningLp()
) - Kullanıcı rotasyon tercihine göre sistem rotasyonunu hesaplar (en üstte)
screenOrientation
etkinliğinin ayarları ve sistem durumu (bkz.rotationForOrientationLw()
) - En popüler etkinliğin belirli bir rotasyona döndürülüp döndürülemeyeceğini belirleyin (bkz.
isRotationChoicePossible()
) olarak değiştirildi
SystemUI/.../statusbar/phone/NavigationBarFragment
:- Gezinme çubuğu düğmesinin rotasyonda gösterilip gösterilmeyeceğini belirler
PhoneWindowManager
tarafından gönderilen geri çağırma önerileri (bkz.onRotationProposal()
) - Gezinme çubuğunu döndür düğmesinin ne zaman gizleneceğini gösterir (bkz.
setRotateSuggestionButtonState(false)
) olarak değiştirildi - gezinme çubuğu gizli (genellikle tam ekranda)
- Cihazın doğal ayarına dönüldüğünde kullanıcı tercihini sıfırlar
yön (
mRotationWatcher
) - Gezinme çubuğu düğmesi animasyonu için uygun stili seçer,
NavigationBarView
uygulamasında uygulandı (bkz.onRotationProposal()
) - Özel animasyonlar da dahil olmak üzere giriş modu mantığı ekler
(bkz.
Settings.Secure.NUM_ROTATION_SUGGESTIONS_ACCEPTED
) olarak değiştirildi - Devre dışı bırakma2 rotasyon işaretini uygular (bkz.
disable()
)
- Gezinme çubuğu düğmesinin rotasyonda gösterilip gösterilmeyeceğini belirler
SystemUI/.../statusbar/phone/NavigationBarView.java
:- Beklemedeki rotasyonla eşleşecek stiller düğmesi simge animasyonu (bkz.
updateRotateSuggestionButtonStyle()
) olarak değiştirildi - Herkese açık kullanıcı adları düğmesi görünürlüğündeki değişiklikleri (bkz.
setRotateButtonVisibility()
), gizlenme mantığı dahil Belirli erişilebilirlik hizmetleri etkinse döndürme düğmesi (en sağdaki gezinme çubuğu düğmesi grubu sıralamasına dayanır)
- Beklemedeki rotasyonla eşleşecek stiller düğmesi simge animasyonu (bkz.
SystemUI/res/layout/menu_ime.xml
:- Döndür düğmesi için yeni bir
KeyButtonView
içerir, üst kısımda, IME/klavye seçicinin altında ancak Erişilebilirlik düğmesi
- Döndür düğmesi için yeni bir
SystemUI/res/drawable/ic_sysbar_rotate_button.xml
:- Karmaşık
AnimatedVectorDrawable
özelliği gezinme çubuğunu döndür düğmesi - Stil (
SystemUI/res/values/styles.xml
dilinde) şu amaçlarla kullanılır: dönme başlangıç ve bitiş açılarını, aynı çekilebilir öğenin çeşitli başlangıç ve bitiş rotasyonlarını hareket ettirmek için kullanılır - Simge renklendirme
TintedKeyButtonDrawable
ile ayarlandı
- Karmaşık
Uygulama
Android 9, çalışan rotasyon önerileri yazılım gezinme tuşları (geri, ana sayfa vb.) kullanan cihazlar
Donanım gezinme tuşlarıyla cihazlar oluşturan cihaz üreticileri için kendi Sistem Kullanıcı Arayüzünü tasarlaması ve uygulaması gerekir. veya özelliği devre dışı bırakabilir. Kapıya konan tüm yüzeylerin Cihaz mevcut sisteme göre 90o veya 180o derece tutulduğunda kolayca kullanılabilir. ve hızla erişilebilir durumdadır. Bu nedenlerle, bildirimlerin kullanımı (IME/klavye seçicide yapıldığı gibi) önerilmez.
Bu özelliği kullanmak için gereken donanım gereksinimleri, gereksinimlerle aynıdır otomatik döndürmeyi kullanın.
Kullanıcı rotasyonu tercihinin, uygulama tutarlılığı için
(Settings.System.USER_ROTATION
), cihazın doğal ayarına sıfırlanır
herhangi bir nedenle sistem cihazın doğal dönüşüne göre değiştiğinde
otomatik döndürme kapalıyken. Sağlanan uygulama bunu yapar (
NavigationBarFragment.mRotationWatcher
) tıklayın.
StatusBarManager.disable2
için geçici olarak yeni bir işaret eklendi
rotasyon önerilerinin görünmesini engelleyebilir. Görüntüleyin
StatusBarManager.DISABLE2_ROTATE_SUGGESTIONS
Bu işaret,
dahil olmak üzere, kritik sistem uygulamaları tarafından kullanıldığı için tüm uygulamalarda geçerlidir.
Kurulum Sihirbazı. Sağlanan uygulama bunu destekler (
NavigationBarFragment.disable()
) bilgileri gösterilir.
Özelliği etkinleştirmenizi ve AOSP'ye uymanızı önemle tavsiye ederiz takip edin. Benzer bir rotasyon deneyimi sunmayı amaçlıyoruz. Günümüzde çoğu telefonda yaşandığı aynı deneyimi yansıtır. otomatik döndürme ve dikey kilitleme arasında geçiş yapın.
Özelleştirme
Döndürme önerileri yalnızca döndürme kilitli modunda (otomatik döndürme kapalı) göründüğünden,
yeni yüklemelerde bu özelliğin varsayılan olarak açık
otomatik döndürmeyi varsayılan
olarak kapatmayı seçebilirsiniz. Görüntüleyin
def_accelerometer_rotation
inç
Varsayılan değişiklikleri yapmak için SettingsProvider/res/values/defaults.xml
.
Kullanıcılar, otomatik döndürmenin etkin olup olmadığını kolayca değiştirebilir (varsayılandan bağımsız olarak) Hızlı Ayarlar veya Görüntü ayarları'ndaki döndürme kutusunu kullanarak.
Doğrulama
Test amacıyla bu özellik, kapı kaplaması değiştirilerek kapatılıp açılabilir
Settings.Secure
değer. Bunu sağlamanın en kolay yolu,
aşağıdaki komutu çalıştırın:
adb shell settings put secure show_rotation_suggestions <x>
Kapalı için x değerini 0
, açık için 1
olarak ayarlayın.
Giriş modu, test için ilişkili
Settings.Secure
değer. Bunu sağlamanın en kolay yolu,
aşağıdaki komutu çalıştırın:
adb shell settings put secure num_rotation_suggestions_accepted 0