Cara Menonaktifkan mode landscape di Android?

Bagaimana saya dapat menonaktifkan modus lansekap untuk beberapa tampilan di aplikasi Android?

Mengomentari pertanyaan (1)
Larutan

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:

  • Ini tidak membebaskan anda dari keharusan untuk berpikir tentang kegiatan siklus hidup peristiwa atau benar menyimpan/mengembalikan keadaan. Ada banyak hal-hal selain aplikasi rotasi yang dapat memicu aktivitas kehancuran/rekreasi, termasuk tidak dapat dihindari hal-hal seperti multitasking. Tidak ada jalan pintas; belajar untuk menggunakan bundel dan retainInstance fragmen.
  • Perlu diingat bahwa tidak seperti cukup seragam iPhone pengalaman, ada beberapa perangkat di mana potret tidak jelas tempat orientasi. Ketika pengguna pada perangkat dengan hardware keyboard atau bantalan permainan a la Nvidia Shield, pada Chromebook, pada foldables, atau di Samsung DeX, memaksa potret dapat membuat anda pengalaman aplikasi yang baik membatasi atau raksasa kegunaan kerumitan. Jika anda app doesn't memiliki kuat UX argumen yang akan menyebabkan pengalaman negatif untuk mendukung orientasi lainnya, anda mungkin harus tidak memaksa lanskap. I'm berbicara tentang hal-hal seperti "ini adalah aplikasi cash register untuk satu model tertentu dari tablet selalu digunakan dalam hardware tetap dermaga."

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:

  • Jika perhatian utama anda adalah disengaja perubahan orientasi mid-kegiatan yang menurut anda perangkat's sensor dan perangkat lunak yang tidak't mengatasi dengan baik (misalnya, di-tilt berbasis permainan) mempertimbangkan untuk mendukung landscape dan portrait, tapi menggunakan 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).
  • Jika anda masih perlu memaksa potret untuk beberapa alasan, sensorPortrait mungkin lebih baik dari potret untuk Android 2.3+; hal ini memungkinkan untuk upside-down potret, yang cukup umum dalam penggunaan tablet.
Komentar (12)

Saya tidak menyadari AndroidManifest.xml file beralih sampai membaca posting ini, jadi di aplikasi saya saya telah menggunakan ini sebagai gantinya:

setRequestedOrientation (ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);     //  Fixed Portrait orientation
Komentar (3)

Tambahkan ini android:screenOrientation="potret" di file manifest dimana anda menyatakan aktivitas anda seperti ini

Jika anda ingin menggunakan kode java mencoba

setRequestedOrientation (ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); 

sebelum anda menelepon setContentView metode untuk aktivitas anda di onCreate().

Semoga ini bisa membantu dan mudah dimengerti untuk semua...

Komentar (0)

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.

Komentar (2)

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.

Komentar (0)

Hanya Seperti menambahkan Baris ini di Manifes Anda

android:screenOrientation="potret"










Komentar (0)

Gunakan ini dalam onCreate() dari Aktivitas

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
Komentar (0)

Hanya menambahkan atribut ini dalam aktivitas anda tag.

 android:screenOrientation="portrait"
Komentar (0)

Anda harus mengubah android:screenOrientation="sensorPortrait" di AndroidManifest.xml

Komentar (1)

Jika 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:

@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setRequestedOrientation (ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
    // rest of your code......
}
Komentar (0)

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

OrientationUtils.lockOrientationLandscape(mActivity);

Membuat tampilan anda Portrait

OrientationUtils.lockOrientationPortrait(mActivity);

Membuka Orientasi

OrientationUtils.unlockOrientation(mActivity);

Orientasi Util Kelas


import android.app.Activity;
import android.content.Context;
import android.content.pm.ActivityInfo;
import android.content.res.Configuration;
import android.os.Build;
import android.view.Surface;
import android.view.WindowManager;

/*  * This class is used to lock orientation of android app in nay android devices 
 */

public class OrientationUtils {
    private OrientationUtils() {
    }

    /** Locks the device window in landscape mode. */
    public static void lockOrientationLandscape(Activity activity) {
        activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR_LANDSCAPE);
    }

    /** Locks the device window in portrait mode. */
    public static void lockOrientationPortrait(Activity activity) {
        activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
    }

    /** Locks the device window in actual screen mode. */
    public static void lockOrientation(Activity activity) {
        final int orientation = activity.getResources().getConfiguration().orientation;
        final int rotation = ((WindowManager) activity.getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay()
                .getRotation();

        // Copied from Android docs, since we don't have these values in Froyo
        // 2.2
        int SCREEN_ORIENTATION_REVERSE_LANDSCAPE = 8;
        int SCREEN_ORIENTATION_REVERSE_PORTRAIT = 9;

        // Build.VERSION.SDK_INT 
Komentar (0)

Tambahkan android:screenOrientation="potret" untuk aktivitas anda ingin menonaktifkan modus lansekap.

Komentar (0)

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 di AndroidManifest.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.

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);

Saya berharap hal ini membantu anda .Untuk lebih jelasnya anda bisa kunjungi di sini masukkan link description here

Komentar (2)

Anda harus mengatur orientasi dari masing-masing kegiatan.










Komentar (0)

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()

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.your_layout);
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);

}
Komentar (0)

Jika anda menggunakan Xamarin C# beberapa solusi ini tidak akan bekerja. Di sini adalah solusi yang saya temukan untuk bekerja.

[Activity(MainLauncher = true, Icon = "@drawable/icon", ScreenOrientation = ScreenOrientation.Portrait)]

Di atas kelas bekerja dengan baik, mirip dengan solusi lain, juga tidak berlaku secara global dan kebutuhan untuk ditempatkan di setiap kegiatan header.

Komentar (0)

gunakan

android:configChanges="keyboardHidden|orientation"
android:screenOrientation="portrait" 
Komentar (0)

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.

class MyApp extends Application {

    @Override
    public void onCreate() {
        super.onCreate();  

        // register to be informed of activities starting up
        registerActivityLifecycleCallbacks(new ActivityLifecycleCallbacks() {

            @Override
            public void onActivityCreated(Activity activity, 
                                          Bundle savedInstanceState) {

                // new activity created; force its orientation to portrait
                activity.setRequestedOrientation(
                    ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
            }
            ....
        });
    }
}
Komentar (0)

tambahkan kelas dalam method oncreate()

 setRequestedOrientation (ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
Komentar (0)

    . . .

        . . .





Komentar (0)