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

来源:互联网 发布:ie11不支持java插件 编辑:程序博客网 时间:2024/05/17 00:04

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

首先,创建一个项目,在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是我定义的两个布局文件,这样便实现了横屏与竖屏切换时显示不同布局的功能。

0 0
原创粉丝点击