Cara Menonaktifkan mode landscape di Android?
Bagaimana saya dapat menonaktifkan modus lansekap untuk beberapa tampilan di aplikasi Android?
907
29
Bagaimana saya dapat menonaktifkan modus lansekap untuk beberapa tampilan di aplikasi Android?
Menambahkan
android:screenOrientation="potret"
untuk kegiatan di AndroidManifest.xml. Misalnya:EDIT: Karena ini telah menjadi super-populer jawabannya, aku merasa sangat bersalah karena memaksa potret jarang solusi yang tepat untuk masalah itu's sering diterapkan untuk.
Utama peringatan dengan paksa potret:
retainInstance
fragmen.Jadi kebanyakan aplikasi hanya harus membiarkan telepon sensor, perangkat lunak, dan konfigurasi fisik membuat keputusan mereka sendiri tentang bagaimana pengguna ingin berinteraksi dengan aplikasi anda. Beberapa kasus, anda mungkin masih ingin untuk berpikir tentang, meskipun, jika anda're tidak senang dengan perilaku default
sensor
orientasi dalam kasus penggunaan anda:nosensor
untuk orientasi. Hal ini akan memaksa lanskap pada kebanyakan tablet dan potret pada kebanyakan ponsel, tapi aku masih tidak't merekomendasikan ini untuk sebagian besar, "normal" aplikasi (beberapa pengguna seperti untuk mengetik dalam lanskap softkeyboard pada ponsel mereka, dan banyak pengguna tablet baca di potret - dan anda harus membiarkan mereka).sensorPortrait
mungkin lebih baik daripotret
untuk Android 2.3+; hal ini memungkinkan untuk upside-down potret, yang cukup umum dalam penggunaan tablet.Saya tidak menyadari
AndroidManifest.xml
file beralih sampai membaca posting ini, jadi di aplikasi saya saya telah menggunakan ini sebagai gantinya:Tambahkan ini
android:screenOrientation="potret"
di file manifest dimana anda menyatakan aktivitas anda seperti iniJika anda ingin menggunakan kode java mencoba
sebelum anda menelepon
setContentView
metode untuk aktivitas anda dionCreate()
.Semoga ini bisa membantu dan mudah dimengerti untuk semua...
Banyak dari jawaban berikut yang menyarankan untuk menggunakan
"potret"
pada anda AndroidManifest.xml file. Ini mungkin tampak seperti solusi yang baik - tapi seperti yang tercantum dalam dokumentasi, anda singling keluar perangkat yang mungkin hanya memiliki lanskap. Anda juga memaksa perangkat tertentu (yang bekerja terbaik dalam landscape) untuk pergi ke potret, tidak mendapatkan orientasi yang tepat.Saran saya adalah dengan menggunakan
"nosensor"
sebagai gantinya. Ini akan meninggalkan perangkat untuk menggunakan default pilihan orientasi, tidak akan memblokir setiap pembelian/download di Google Play, dan akan memastikan sensor doesn't mengacaukan anda (NDK, dalam kasus saya) permainan.Jika anda ingin user-pengaturan,
kemudian saya'd merekomendasikan
setRequestedOrientation (ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
Anda dapat mengubah pengaturan dari menu pengaturan.
Saya memerlukan ini karena saya timer harus sesuai dengan apa yang's pada layar, dan memutar layar akan menghancurkan aktivitas saat ini.
Hanya Seperti menambahkan Baris ini di Manifes Anda
Gunakan ini dalam onCreate() dari Aktivitas
Hanya menambahkan atribut ini dalam aktivitas anda tag.
Anda harus mengubah
android:screenOrientation="sensorPortrait"
di AndroidManifest.xmlJika anda don't ingin pergi melalui kerumitan menambahkan orientasi di masing-masing entri manifest aktivitas yang lebih baik, membuat BaseActivity kelas (mewarisi 'Kegiatan' atau 'AppCompatActivity') yang akan diwarisi oleh setiap aktivitas aplikasi anda bukan 'Kegiatan' atau 'AppCompatActivity' dan hanya menambahkan potongan kode berikut di BaseActivity:
Cara mengubah orientasi dalam beberapa view
Alih-alih mengunci orientasi seluruh kegiatan anda dapat menggunakan kelas ini untuk secara dinamis mengunci orientasi dari setiap pandangan pragmatis:-
Membuat tampilan anda Lanskap
Membuat tampilan anda Portrait
Membuka Orientasi
Orientasi Util Kelas
Tambahkan
android:screenOrientation="potret"
untuk aktivitas anda ingin menonaktifkan modus lansekap.Jika anda ingin menonaktifkan
modus Lansekap untuk aplikasi android anda
( atau kegiatan tunggal) semua yang perlu anda lakukan adalah menambahkan,android:screenOrientation="potret"
untuk aktivitas tag diAndroidManifest.xml
file.Seperti:
Cara Lain , Program Pendekatan.
Jika anda ingin melakukan hal ini secara programatik yaitu. menggunakan kode Java. Anda dapat melakukannya dengan menambahkan kode di bawah ini di dalam Java class activity yang anda don't ingin ditampilkan dalam modus lansekap.
Saya berharap hal ini membantu anda .Untuk lebih jelasnya anda bisa kunjungi di sini masukkan link description here
Anda harus mengatur orientasi dari masing-masing kegiatan.
Anda dapat memaksa aktivitas tertentu untuk selalu tetap dalam mode portrait dengan menulis ini di manifest.xml
Anda juga dapat memaksa aktivitas anda untuk tetap di postrait mode dengan menulis baris berikut dalam aktivitas anda's method onCreate()
Jika anda menggunakan Xamarin C# beberapa solusi ini tidak akan bekerja. Di sini adalah solusi yang saya temukan untuk bekerja.
Di atas kelas bekerja dengan baik, mirip dengan solusi lain, juga tidak berlaku secara global dan kebutuhan untuk ditempatkan di setiap kegiatan header.
gunakan
Anda dapat melakukan ini untuk anda seluruh aplikasi tanpa harus membuat semua aktivitas anda memperpanjang dasar umum kelas.
Caranya adalah pertama-tama pastikan anda memiliki Aplikasi subclass dalam proyek anda. Dalam onCreate(), dipanggil saat aplikasi pertama kali dijalankan, anda mendaftarkan ActivityLifecycleCallbacks objek (API level 14+) untuk menerima pemberitahuan dari kegiatan siklus peristiwa.
Ini memberi anda kesempatan untuk mengeksekusi kode anda sendiri setiap kali ada kegiatan di aplikasi anda dimulai (atau dihentikan, atau dilanjutkan, atau apapun). Pada titik ini anda dapat menghubungi setRequestedOrientation() pada kotak yang baru dibuat kegiatan.
Dan jangan lupa untuk menambahkan aplikasi:nama=".MyApp" di file manifest.
tambahkan kelas dalam method oncreate()