赞
踩
在应用程序开发时有时不同的状态需要对应不同的布局文件。其实比较简单,以横屏与竖屏变换为例切换不同的布局文件。
首先,创建一个项目,在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是我定义的两个布局文件,这样便实现了横屏与竖屏切换时显示不同布局的功能。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。