我有一个android布局 - main.axml,它根据方向而改变。我已经覆盖了OnConfigurationChanged,以便我可以根据其他条件调整一些图标(位于此布局之外)的方式。我将配置更改设置为Orientation和ScreenSize,这是我的方法:
public override void OnConfigurationChanged(Configuration newConfig)
{
base.OnConfigurationChanged(newConfig);
toggle.OnConfigurationChanged(newConfig);
animateDrawerIcon();
FabController();
}
问题是,布局不再改变,无论方向如何都保持不变,如果我在上面的方法中放置SetContentView(ResourceLayout),布局会改变但是完全是空的。
我真的希望Android能够处理旋转/屏幕大小的变化,我只想在发生这种情况时调用两个函数 - 任何人都可以建议如何做到最好吗?
答案 0 :(得分:0)
如果您想要Android,那么最简单的方法是为两个方向定义两个布局。如果横向布局与纵向模式下的布局完全不同,这是理想的选择。
但如果它在这里和那里几位,那么你应该检测设备的当前方向,并在你的onCreate
方法中切换按钮和开关(或你想做的任何事情!!!)。在这种情况下,您无需定义多个布局。
如果你有一个按钮只想进入portrat
模式,那么请默认情况下在onCreate
的{{1}}中显示该按钮,检测取向为Activity
,如果方向为getResources().getConfiguration().orientation
,则只需切换它。
虽然landscape
方法非常方便,但避免在其中加入大量逻辑。尝试上面提到的任何一种方法