便以理解,先贴代码
    public void onCreate(Bundle savedInstanceState) 
     { 
         super.onCreate(savedInstanceState); 
         requestWindowFeature(Window.FEATURE_NO_TITLE);        
             // 设置为全屏模式   
         getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,   
                          WindowManager.LayoutParams.FLAG_FULLSCREEN);   
         setContentView(R.layout.main); 
     }
我在res下新建了layout、layout-land、layout-port文件夹,并分别新建了main.xml,
    <TextView
        android:id="@+id/button"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="layout-land" />每个main.xml里的text都显示为自己的文件夹名。最近发现,在横屏下(注意是手机横放)点击应用,它会调用layout-land下的布局,这很正常,但是把手机竖放的时候,它还是使用layout-land下的布局,也就是说TextView显示“layout-land”。
接着,我退出应用,在竖屏下(注意是竖屏)点击应用,它会调用layout-port下的布局,这很正常,但是把手机横放的时候,它还是使用layout-port下的布局,也就是说TextView显示“layout-port”。上面的应用是已经加了 android:configChanges="keyboardHidden|orientation",即支持横竖屏切换。我的问题是,进入应用后,如何横屏下TextView显示layout-land,切换到竖屏下显示layout-port?即横屏时使用layout-land布局,竖屏时使用layout-port布局,而不只是在横屏或竖屏下运行应用时才有效?

解决方案 »

  1.   

    android:configChanges="keyboardHidden|orientation"去掉试试。
      

  2.   

    最近发现,我上面的发现是错的。
    应该这样理解:
    在AndroidManifest.xml中未加android:configChanges="keyboardHidden|orientation"或
    android:screenOrientation="portrait",并且在xxx.java文件里没有加setRequestedOrientation(mOrient)这句代码的话,运行程序,横屏下会调用layout-land里的布局,竖屏下会调用layout-port里的布局,默认调用layout布局。
    加了上面任何一句话的话,在运行程序的时候,如里手机是横立的,则运行完毕后,一直使用的是layout-land里的布局。如里手机是竖立的,则运行完毕后,一直使用的是layout-port里的布局。
      

  3.   

    貌似是在JAVA代码里需要填写相关的命令函数 就两句話吧 很久前 我是这么处理的