我需要在方向更改时替换我的布局并保持我的视图状态和监听器(例如在纵向模式下我将TextView颜色从蓝色更改为红色,当我旋转设备时,需要使用相同TextView的新布局红色)。我有2个布局:一个布局/一个布局-land /我在AndroidManifest.xml中添加了这个:android:configChanges="orientation|keyboardHidden|screenSize"
这是我的onConfigurationChanged
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
mDisplayWidth = Helper.getDisplayWidth(context);
mDisplayHeight = Helper.getDisplayHeight(context);
mDisplayOrientation = getResources().getConfiguration().orientation;
if(mDisplayOrientation == Configuration.ORIENTATION_LANDSCAPE){
//landscape
}else{
//portret
}
final View newView = View.inflate(getActivity(), R.layout.harta, null);
ViewGroup rootView = (ViewGroup) getView();
rootView.removeAllViews();
rootView.addView(newView);
}
问题在于新布局不能保留旧状态和听众,我该如何实现?
答案 0 :(得分:0)
从清单中删除android:configChanges="orientation|keyboardHidden|screenSize"
。否则onConfigurationChanged()
不会导致;