android2.2如何实现横竖屏变换时调用两个不同的xml布局,Activity代码相同
解决方案 »
- android google mapview显示白格子问题
- 如何让开机后第一个运行的程序是我的程序,而不是Launcher?
- 2.3状态栏wifi图标
- Android中GC_EXTERNAL_ALLOC的含义
- 菜鸟在示例基础上增加功能,怎样组织架构?
- 请教下,GeoDiary2 那种浮动于activity上的ui怎么实现的
- 如何知道某个类在哪个包里面?
- 大神求助 关于声音录入
- 为什么我已经把耗时操作放在子线程了,编译器却总是提醒我主线程可能做了太多工作了
- APP息屏后 后台gps记录中断的问题
- 在安装ADT的时候老是出现一下问题怎么解决
- <?xml version="1.0" encoding="utf-8"?>的问题
public void onConfigurationChanged(Configuration newConfig)
{
super.onConfigurationChanged(newConfig);
if (this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE)
{
setContentView(R.layout.landscape); //布局1
}
else if (this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT)
{
setContentView(R.layout.portrait); //布局2
}
}
MyProject/
res/
layout/
main.xml
layout-land/
main.xml
是Android的设计哲学,但别扯上什么面向过程还是别的还有一个设置(忘了那个了),Portrait/Landscape切换时是否重启,如果不重启(对用户来说透明),你那有资源也是白搭
请问
if (this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE)
{
setContentView(R.layout.landscape); //布局1
}
else if (this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT)
{
setContentView(R.layout.portrait); //布局2
}难道不是面向过程的吗? 那你觉得它是面向对象的?
我同意你的说法。但面向对象和面向过程是两种截然不同的思维方式。 一个是通过建模,抽象,封装来解决问题。一个是通过分析具体问题得出解决步骤。前面的代码,和google推荐的做法相比,很明显一个是面向对象,一个是面向过程。if (this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) 如果这种判断只在该类中出现这一次,切在以后的可见的需求变化中,也不会设计到改变,那它的存在还有一定的理由,但如果一个类中到处都充满了关于切屏的判断。我个人认为这种用if来判断的设计很不合理。
把横屏的xml放到layout-land里,把竖屏的放到layout-port里,取一样的名字。