我有一个editText和一个活动中的一些按钮。每次我将手机倾斜到横向模式时,我都会将其重置为标准值。为了改变这一点,我将这一行添加到活动清单中:
if(img!=null && !img.compress(Bitmap.CompressFormat.PNG, 100, fOut)){
isOk = false;
}
有了这个,我在改变手机方向时得到了相同的价值。但我的布局在纵向模式下非常完美,在横向模式下非常糟糕(按钮在屏幕外)。所以我得到了两个xml文件:布局和布局(land)。这样,如果在调用此活动时手机倾斜,则调用布局(陆地)。否则,调用纵向布局。但每次在调用活动后我倾斜手机时,使用的布局保持不变。我想知道如何在活动调用期间和之后动态更改布局。
答案 0 :(得分:1)
您通过在清单中指定android:configChanges
来阻止活动重新加载。
删除它将允许活动在轮换更改时重新加载,从而正确处理布局。然后,您需要处理活动的生命周期事件,以便在轮换期间保存和恢复瞬态数据。
https://developer.android.com/training/basics/activity-lifecycle/recreating.html#SaveState
答案 1 :(得分:-1)
通常,/ res / layout中的布局文件同时应用于纵向和横向。
例如,
/res/layout/activity_main.xml
您可以添加新文件夹
/res/layout-land
,将activity_main.xml复制到此文件夹并进行必要的调整
确保文件夹的名称应为横向模式的布局 -