Middle
Czy można sprawić, aby aktywność nie była ponownie tworzona podczas obracania ekranu?
sobes.tech AI
Odpowiedź od AI
Tak, jest to możliwe. Istnieją dwa główne sposoby.
-
Zadeklaruj
configChangesw manifeście: WAndroidManifest.xml, dla<activity>, dodaj atrybutandroid:configChanges="orientation|screenSize".<activity android:name=".MainActivity" android:configChanges="orientation|screenSize" />W tym przypadku aktywność nie jest ponownie tworzona, a wywoływana jest metoda
onConfigurationChanged(), którą należy nadpisać, aby obsługiwać zmiany konfiguracji.override fun onConfigurationChanged(newConfig: Configuration) { super.onConfigurationChanged(newConfig) // Obsługa zmian, na przykład: // if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) { // // Zmieniono na tryb poziomy // } else if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT) { // // Zmieniono na tryb pionowy // } } -
Ustawić stałą orientację ekranu: Można ustawić stałą orientację dla aktywności, dodając atrybut
android:screenOrientationw manifeście.<activity android:name=".MainActivity" android:screenOrientation="portrait" />lub
<activity android:name=".MainActivity" android:screenOrientation="landscape" />W tym przypadku orientacja aktywności nie będzie się zmieniać niezależnie od obrotu urządzenia, a aktywność nie zostanie ponownie utworzona.