Android中横竖屏切换加载不同布局导致fragment数据丢失的问题

在Android应用中,当横竖屏切换时,由于使用了不同的布局文件,导致Fragment的数据丢失。设置了android:configChanges后,只在首次切换时执行Fragment生命周期。尝试通过广播通知Fragment重新加载数据,但数据未能正常显示。问题待解决。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


亲们好,求助大神,改了好长时间也没搞定这个问题,图上的四幅图依次为竖屏切横屏,再次切竖屏,再切横屏的效果,当再次切换竖屏的时候数据就没有显示了。我设置了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的时候,数据什么都有,但是就是不显示出来!实在是搞不定啊,求大神帮我指点迷津。由衷感谢了!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值