Bagaimana cara menonaktifkan mode lansekap untuk beberapa tampilan di aplikasi Android saya?
android
android-manifest
android-orientation
hilangInTransit
sumber
sumber
Jawaban:
Tambahkan
android:screenOrientation="portrait"
ke aktivitas di AndroidManifest.xml. Sebagai contoh:EDIT: Karena ini telah menjadi jawaban yang sangat populer, saya merasa sangat bersalah karena memaksa potret jarang merupakan solusi yang tepat untuk masalah yang sering diterapkan.
Peringatan utama dengan potret paksa:
retainInstance
fragmen.Jadi sebagian besar aplikasi seharusnya membiarkan sensor ponsel, perangkat lunak, dan konfigurasi fisik membuat keputusan sendiri tentang bagaimana pengguna ingin berinteraksi dengan aplikasi Anda. Namun, beberapa kasus mungkin masih ingin Anda pikirkan, jika Anda tidak puas dengan perilaku
sensor
orientasi default dalam use case Anda:nosensor
untuk orientasi. Ini memaksa lansekap di sebagian besar tablet dan potret di sebagian besar ponsel, tetapi saya masih tidak akan merekomendasikan ini untuk sebagian besar aplikasi "normal" (beberapa pengguna hanya ingin mengetikkan softkeyboard lansekap di ponsel mereka, dan banyak pengguna tablet membaca dalam potret - dan Anda harus membiarkannya).sensorPortrait
mungkin lebih baik daripadaportrait
untuk Android 2.3+; ini memungkinkan potret terbalik, yang cukup umum dalam penggunaan tablet.sumber
Saya tidak mengetahui
AndroidManifest.xml
peralihan file sampai membaca posting ini, jadi di aplikasi saya saya telah menggunakan ini sebagai gantinya:sumber
Tambahkan ini
android:screenOrientation="portrait"
dalam file manifes Anda tempat Anda mendeklarasikan aktivitas Anda seperti iniJika Anda ingin menggunakan kode java coba
sebelum Anda memanggil
setContentView
metode untuk aktivitas Anda dionCreate()
.Semoga bantuan ini dan mudah dimengerti untuk semua ...
sumber
Banyak jawaban di sini menyarankan untuk digunakan
"portrait"
dalam file AndroidManifest.xml Anda. Ini mungkin tampak seperti solusi yang baik - tetapi seperti dicatat dalam dokumentasi, Anda memilih perangkat yang mungkin hanya memiliki lanskap. Anda juga memaksa perangkat tertentu (yang berfungsi terbaik dalam lanskap) untuk masuk ke potret, bukan mendapatkan orientasi yang tepat.Saran saya adalah menggunakan
"nosensor"
sebagai gantinya. Ini akan meninggalkan perangkat untuk menggunakan orientasi pilihan standarnya, tidak akan memblokir pembelian / unduhan di Google Play, dan akan memastikan sensor tidak mengacaukan game (NDK, dalam kasus saya) Anda.sumber
Jika Anda ingin pengaturan pengguna,
maka saya akan merekomendasikan
setRequestedOrientation (ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
Anda dapat mengubah pengaturan dari menu pengaturan.
Saya memerlukan ini karena penghitung waktu saya harus sesuai dengan apa yang ada di layar, dan memutar layar akan menghancurkan aktivitas saat ini.
sumber
Cukup tambahkan Suka Baris ini di Manifes Anda
sumber
Anda dapat melakukan ini untuk seluruh aplikasi Anda tanpa harus membuat semua aktivitas Anda memperpanjang kelas dasar bersama.
Caranya adalah pertama-tama memastikan Anda menyertakan subkelas Aplikasi dalam proyek Anda. Di onCreate (), yang dipanggil saat aplikasi Anda pertama kali dijalankan, Anda mendaftarkan objek ActivityLifecycleCallbacks (API level 14+) untuk menerima pemberitahuan peristiwa siklus hidup aktivitas.
Ini memberi Anda kesempatan untuk mengeksekusi kode Anda sendiri setiap kali aktivitas di aplikasi Anda dimulai (atau dihentikan, atau dilanjutkan, atau apa pun). Pada titik ini Anda dapat memanggil setRequestedOrientation () pada aktivitas yang baru dibuat.
Dan jangan lupa untuk menambahkan aplikasi: name = ". MyApp" di file manifes Anda.
sumber
Gunakan ini di onCreate () dari Kegiatan
sumber
Anda harus berubah
android:screenOrientation="sensorPortrait"
di AndroidManifest.xmlsumber
Cukup tambahkan atribut ini di tag aktivitas Anda.
sumber
Jika Anda tidak ingin melalui kerumitan menambahkan orientasi di setiap entri nyata aktivitas yang lebih baik, buat kelas BaseActivity (mewarisi 'Aktivitas' atau 'AppCompatActivity') yang akan diwarisi oleh setiap aktivitas aplikasi Anda alih-alih 'Aktivitas 'atau' AppCompatActivity 'dan tambahkan saja kode berikut di BaseActivity Anda:
sumber
Tambahkan
android:screenOrientation="portrait"
ke aktivitas yang Anda ingin menonaktifkan mode lansekap.sumber
Jika Anda ingin menonaktifkan
Landscape mode for your android app
(atau satu aktivitas) yang perlu Anda lakukan adalah menambahkan,android:screenOrientation="portrait"
ke tag aktivitas dalamAndroidManifest.xml
file.Suka:
Cara Lain, Pendekatan Programatis.
Jika Anda ingin melakukan ini yaitu secara programatik. menggunakan kode Java. Anda dapat melakukannya dengan menambahkan kode di bawah ini di kelas Java dari aktivitas yang Anda tidak ingin ditampilkan dalam mode lansekap.
Saya harap ini membantu Anda. Untuk lebih jelasnya Anda dapat mengunjungi di sini, masukkan deskripsi tautan di sini
sumber
android:screenOrientation="nosensor">
Cara mengubah orientasi di beberapa tampilan
Alih-alih mengunci orientasi seluruh aktivitas, Anda dapat menggunakan kelas ini untuk secara dinamis mengunci orientasi dari salah satu tampilan Anda secara pragmatis: -
Jadikan pemandangan Anda Landscape
Buat Potret Anda
Buka Orientasi
Kelas Util Orientasi
sumber
menggunakan
sumber
Anda harus mengatur orientasi setiap aktivitas.
sumber
tambahkan kelas di dalam metode oncreate ()
sumber
Jika Anda menggunakan Xamarin C # beberapa solusi ini tidak akan berfungsi. Inilah solusi yang saya temukan untuk berhasil.
Di atas kelas berfungsi dengan baik, mirip dengan solusi lain, juga tidak berlaku secara global dan perlu ditempatkan di setiap header aktivitas.
sumber
Anda dapat memaksa aktivitas khusus Anda untuk selalu tetap dalam mode potret dengan menulis ini di manifes.xml Anda
Anda juga dapat memaksa aktivitas Anda untuk tetap dalam mode posrait dengan menulis baris berikut dalam metode onCreate () aktivitas Anda
sumber
sumber
Tambahkan di bawah ini memuji proyek Anda,
maka Anda menggunakan kelas manifes seperti, React_Native (Folder Proyek Anda) / android / app / src / main / AndroidManifest.xml
Terima kasih!
sumber
Dalam
<apphome>/platform/android
direktori yang dibuatAndroidManifest.xml
(menyalinnya dari yang dihasilkan). Kemudian tambahkanandroid:screenOrientation=
"portrait
" ke SEMUA elemen aktivitas.sumber
kita dapat membatasi Kegiatan dalam mode potret atau lansekap dengan menggunakan atribut atau android: screenOrientation.
jika kami memiliki lebih dari satu aktivitas dalam program saya, maka Anda memiliki kebebasan untuk membatasi aktivitas apa pun dalam mode apa pun dan tidak pernah memengaruhi aktivitas lain yang tidak Anda inginkan.
sumber
Baik di kelas manifes.
atau secara terprogram
Catatan: Anda harus memanggil ini sebelum
setContentView
metode untuk aktivitas Anda dionCreate()
.sumber
Menambahkan
android:screenOrientation="portrait"
di AndroidManifest.xml berkas.Sebagai contoh :
sumber
Dengan harapan dapat membantu orang lain, atribut berikut pada ACTIVITY di AndroidManifest.xml adalah yang Anda butuhkan:
android: configChanges = "orientasi"
Jadi, simpul aktivitas lengkap:
sumber
Dalam kotlin, hal yang sama dapat dicapai secara terprogram menggunakan di bawah ini
sumber
Ini bekerja untuk saya, Coba tambahkan kode ini di file AndroidManifest
sumber
Masukkan ke dalam manifes Anda.
Orientasinya akan tegak, tetapi jika telepon pengguna terbalik, itu menunjukkan cara yang benar juga. (Jadi layar Anda akan berputar 180 derajat).
Sistem mengabaikan atribut ini jika aktivitas berjalan dalam mode multi-jendela .
sumber
jika aktivitas Anda terkait dengan status orientasi perangkat pertama, dapatkan orientasi perangkat saat ini dalam
onCreate
metode dan kemudian perbaiki selamanya:sumber