配置更改ScreenSize和Orientation停止布局更改

时间:2017-02-16 11:25:09

标签: android android-layout xamarin

我有一个android布局 - main.axml,它根据方向而改变。我已经覆盖了OnConfigurationChanged,以便我可以根据其他条件调整一些图标(位于此布局之外)的方式。我将配置更改设置为Orientation和ScreenSize,这是我的方法:

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

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

我真的希望Android能够处理旋转/屏幕大小的变化,我只想在发生这种情况时调用两个函数 - 任何人都可以建议如何做到最好吗?

1 个答案:

答案 0 :(得分:0)

如果您想要Android,那么最简单的方法是为两个方向定义两个布局。如果横向布局与纵向模式下的布局完全不同,这是理想的选择。

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

如果你有一个按钮只想进入portrat模式,那么请默认情况下在onCreate的{​​{1}}中显示该按钮,检测取向为Activity,如果方向为getResources().getConfiguration().orientation,则只需切换它。

虽然landscape方法非常方便,但避免在其中加入大量逻辑。尝试上面提到的任何一种方法