Apakah ada cara untuk mengunci orientasi selama runtime? Misalnya, saya ingin mengizinkan pengguna mengunci layar ke lanskap jika pengguna saat ini dalam lanskap dan mengaktifkan opsi menu.
android
orientation
Jared
sumber
sumber
Hati-hati dengan perbedaan antara apa yang dikembalikan getConfiguration dan apa yang diinginkan setRequestedOrientation - keduanya int, tetapi berasal dari definisi konstanta yang berbeda.
Berikut ini cara mengunci orientasi saat ini, sambil memungkinkan membalik 180 derajat
sumber
Ini berfungsi pada perangkat dengan potret terbalik dan lanskap terbalik.
Orientasi kunci:
Buka kunci orientasi:
sumber
"Returns the rotation of the screen from its "natural" orientation."
sumber rotasi . Jadi pada ponsel yang mengatakan ROTATION_0 adalah potret mungkin benar, tetapi pada tablet orientasinya "alami" kemungkinan adalah lanskap dan ROTATION_0 harus mengembalikan lanskap, bukan potret.Saya sepertinya pernah mengalami kasus serupa. Saya ingin mendukung orientasi apa pun, tetapi saya harus tetap dalam orientasi saat ini setelah titik tertentu dalam alur kerja. Solusi saya adalah:
Saat masuk ke alur kerja yang dilindungi:
Saat keluar dari alur kerja yang dilindungi:
sumber
Alternatif jawaban @pstoppani dengan dukungan untuk tablet (Seperti jawaban @pstoppani, ini hanya akan berfungsi pada perangkat> 2.2)
-Diuji
Samsung Galaxy SIII
danSamsung Galaxy Tab 10.1
sumber
||
dirotation == Surface.ROTATION_0 || rotation == Surface.ROTATION_90
dan denganrotation == Surface.ROTATION_0 || rotation == Surface.ROTATION_270
. Jadi saya punya 2 keraguan :::: pertama, MengapaROTATION_0
bukanROTATION_180
di kasus kedua dan satu lagi mengapa memeriksa 0 derajat dengan 90 bukan 180 ??||
pemeriksaan yang berbeda menangani dua kemungkinan orientasi default berdasarkan pada perangkat yang melaporkan lanskap vs potret.Ini kode saya, Anda dapat mengunci dengan salah satu metode ini layar Anda dan setelah menyelesaikan tugas buka kunci dengan unlockOrientation:
sumber
Berikut konversi Xamarin dari jawaban @pstoppani di atas.
CATATAN: ini untuk Fragmen, ganti Aktivitas. dengan ini. jika digunakan dalam suatu aktivitas.
Ini belum teruji karena pergi dengan pendekatan yang berbeda sebelum digunakan, tetapi mungkin berguna.
sumber