
亲们好,求助大神,改了好长时间也没搞定这个问题,图上的四幅图依次为竖屏切横屏,再次切竖屏,再切横屏的效果,当再次切换竖屏的时候数据就没有显示了。我设置了android:configChanges="screenSize|orientation|keyboardHidden",所以在横竖切换的时候只会执行
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
if (this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) {
//横屏
setContentView(R.layout.layout_rankingstatistics_land);
initDefineLand();
addListenerLand();
} else if (this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT) {
//竖屏
setContentView(R.layout.layout_rankingstatistics);
initDefine();
initOperation();
}
}
竖屏的总布局是一个viewpager上加载了4个fragment,而横屏是2个viewpager上各加载2个fragment!加载fragment是在主的activity中执行的,数据加载都是在fragment中执行,我知道有些人要说设置这个activity让他横竖屏切换的时候重新执行生命周期,这个行不通,因为我们这个框架特殊。
在每次重新初始化布局的时候我都有去重新new Fragment!我把生命周期打印出来的时候,只是在第一次切换的时候执行了fragment的生命周期,后面都不会执行了,然后我用广播通知到fragment去重新用adapter加载数据,走debug的时候,数据什么都有,但是就是不显示出来!实在是搞不定啊,求大神帮我指点迷津。由衷感谢了!