Android学习【8】Android动态更改布局文件

在应用程序开发时有时不同的状态需要对应不同的布局文件。其实比较简单,以横屏与竖屏变换为例切换不同的布局文件。

首先,创建一个项目,在Manifest文件中为MainActivity添加configChanges属性如下:

<span style="white-space:pre">	</span><activity 
	  android:name=".MyActivity"
	  android:label="@string/app_name"
	  android:configChanges="screenSize|orientation|keyboardHidden">
	  <intent-filter >
	    <action android:name="android.intent.action.MAIN" />
	    <category android:name="android.intent.category.LAUNCHER" />
	  </intent-filter>
	</activity>
添加属性完成后,在screensize,orientation,keyboard等属性改变后,会触发MainActivity中的onConfigurationChanged函数,重写改函数即可。
public void onConfigurationChanged(Configuration newConfig) {
    super.onConfigurationChanged(newConfig); 

    // [ ... Update any UI based on resource values ... ]

    if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {  //竖屏
      // [ ... React to different orientation ... ]
      setContentView(R.layout.new_main);
    }

    if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT) {  //横屏
      // [ ... React to different orientation ... ]
      setContentView(R.layout.main);
      TextView tv = (TextView)findViewById(R.id.test);
      tv.setText("hello");
    }

    if (newConfig.keyboardHidden == Configuration.KEYBOARDHIDDEN_NO) {
      // [ ... React to changed keyboard visibility ... ]
    }
  }
在这里,main和new_main是我定义的两个布局文件,这样便实现了横屏与竖屏切换时显示不同布局的功能。

你可能感兴趣的:(android,布局切换)