當方向改變時,我想讓activity 不被毀壞,因此我在manifest 文件中添加:
<activity
android:name="MyActivity"
android:configChanges="orientation|keyboard|keyboardHidden">
</activity>
現在的問題是每當方向轉化成橫向方式時,我如何才能使它轉向一個新的布局?
在 layout-land 或者 layout-port 裡加入布局文件還是不能正常運行。
首先在清單文件加權限:<uses-permission android:name="android.permission.CHANGE_CONFIGURATION">
然後重寫onConfigurationChanged()方法.
@Override
public void onConfigurationChanged(Configuration newConfig) {
// TODO Auto-generated method stub
super.onConfigurationChanged(newConfig);
if(newConfig.orientation==Configuration.ORIENTATION_LANDSCAPE){
//橫向
setContentView(R.layout.main_landscape);
//重新實例化組件和設置監聽
}else{
//豎向
setContentView(R.layout.main);
//重新實例化組件和設置監聽
}
}
最後別忘了在onCreate()時加上判斷,
if(getResources().getConfiguration().orientation ==Configuration.ORIENTATION_LANDSCAPE){
setContentView(R.layout.main_landscape);
}else {
setContentView(R.layout.main);
}