ランドスケープで同じ状態を維持するにはどうすればよいですか。ランドスケープ モードで画面を腐らせたら、アクティビティが再開され、レイアウト ビューが間違って表示されます。だから私を助けてください。
3 に答える
Bundle
inメソッドで状態を保存し、 inまたは でonSaveInstanceState()
復元することができます。onCreate()
onRestoreInstanceState()
または、方向の変更を無効にする場合は、マニフェスト ファイルにを追加できandroid:screenOrientation="landscape"
ます。Activity
ランドスケープ モードで同じ状態を保持するには、次android:configChanges="orientation|keyboard"
のように現在のアクティビティを追加して、途中で構成の変更を処理する必要があります。
<activity
android:configChanges="orientation|keyboard"
...
/>
または、レイアウトまたはビューを変更するには、Activity を次のようにconfigChanges
オーバーライドする必要があります。onConfigurationChanged
@Override
public void onConfigurationChanged(Configuration newConfig)
{
//Handle config changes here, paying attention to
//the newConfig.orientation value
super.onConfigurationChanged(newConfig);
}
onSaveInstanceState()
また、構成変更の任意のビューの状態を保存する場合は、TextView、EditText、View Layout などのビューの状態を保存するため、および onRestoreInstanceState()
デバイス モードの回転後に状態を取得するためにオーバーライドする必要があります。
ランタイムの変更を処理する方法の詳細については、次の Android トピックも参照してください。
レイアウトがランドスケープ モードで適切に表示されない/収まらないと話している場合は、同じ名前の新しい xml が必要になり、それを「layout-land」という新しいフォルダー内に配置します。それは役立つはずです