当前位置: 代码迷 >> Android >> 配置更改屏幕尺寸和方向停止布局更改
  详细解决方案

配置更改屏幕尺寸和方向停止布局更改

热度:48   发布时间:2023-08-04 12:13:10.0

我有一个android布局-main.axml,它会根据方向进行更改。 我已经覆盖了OnConfigurationChanged,以便可以根据其他条件调整某些图标(位于此布局之外)的外观。 我将配置更改设置为“方向”和“屏幕尺寸”,这是我的方法:

public override void OnConfigurationChanged(Configuration newConfig)
        {
            base.OnConfigurationChanged(newConfig);
            toggle.OnConfigurationChanged(newConfig);
            animateDrawerIcon();
            FabController();
        }

问题是,布局不再更改,无论方向如何它都保持不变,如果我将SetContentView(ResourceLayout)放在上述方法中,则布局会更改,但完全为空。

我真的希望Android处理旋转/屏幕大小的更改,我只想在发生这种情况时调用两个函数-有人可以建议如何最好地做到这一点吗?

如果您想让Android做到这一点,那么最简单的方法就是为两个方向定义两个布局。 如果横向布局与纵向模式下的布局有很大不同,这是理想的选择。

但是,如果到处都是几分,那么您应该检测设备的当前方向,并在onCreate方法中切换按钮和开关(或任何您想做的!!!)。 在这种情况下,您无需定义多个布局。

例如,如果您有一个仅希望在portrat模式下使用的按钮,则默认情况下让该按钮可见,并在Activity onCreate中,通过getResources().getConfiguration().orientation ,如果方向是landscape然后切换即可。

尽管OnConfigurationChanged方法确实很方便,但请避免在其中添加很多逻辑。 尝试上述任何一种方法

  相关解决方案