Sobes.tech
Middle

Μπορεί να γίνει ώστε η δραστηριότητα να μην αναδημιουργείται κατά την περιστροφή της οθόνης;

sobes.tech AI

Απάντηση από AI

Ναι, είναι δυνατόν. Υπάρχουν δύο βασικοί τρόποι.

  1. Δήλωση configChanges στο αρχείο manifest: Στο AndroidManifest.xml, για το <activity>, προσθέστε το χαρακτηριστικό android:configChanges="orientation|screenSize".

    <activity
        android:name=".MainActivity"
        android:configChanges="orientation|screenSize" />
    

    Σε αυτήν την περίπτωση, η δραστηριότητα δεν αναδημιουργείται, αλλά καλείται η μέθοδος onConfigurationChanged(), η οποία πρέπει να υπερισχύσει για να διαχειριστεί τις αλλαγές διαμόρφωσης.

    override fun onConfigurationChanged(newConfig: Configuration) {
        super.onConfigurationChanged(newConfig)
        // Διαχείριση αλλαγών, π.χ.:
        // if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {
        //     // Μετάβαση σε οριζόντια λειτουργία
        // } else if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT) {
        //     // Μετάβαση σε κατακόρυφη λειτουργία
        // }
    }
    
  2. Ορισμός σταθερής προσανατολισμού οθόνης: Μπορείτε να ορίσετε σταθερό προσανατολισμό για τη δραστηριότητα, προσθέτοντας το χαρακτηριστικό android:screenOrientation στο αρχείο manifest.

    <activity
        android:name=".MainActivity"
        android:screenOrientation="portrait" />
    

    ή

    <activity  
        android:name=".MainActivity"  
        android:screenOrientation="landscape" />
    

    Σε αυτήν την περίπτωση, ο προσανατολισμός της δραστηριότητας δεν θα αλλάξει ανεξάρτητα από την περιστροφή της συσκευής, και η δραστηριότητα δεν θα αναδημιουργηθεί.