A​n​d​r​o​i​d​屏​幕​旋​转处理,保持Activity内容

1.修改AndroidManifest.xml 在activity属性中加入:


android:configChanges=”orientation|keyboardHidden|screenSize" //3.2以上必须加此属性,不然还是会调用onCreate()。

android:configChanges,这个方法主要是负责列出清单,当清单上用户指定的设置改变时,Activity会自己处理这些变化。

orientation:屏幕界面旋转(可能是用户手动旋转的)。

screenSize:如果你的开发API等级等于或高于13,你还需要设置screenSize,因为screenSize会在屏幕旋转时改变。

keyboardHidden:键盘辅助功能改变。

AndroidManifest.xml代码:

<span style="font-family:Microsoft YaHei;font-size:12px;"><activity
            android:name="com.Lee.eq.MainActivity"
            android:configChanges="orientation|keyboardHidden|screenSize" >
        </activity></span>



2.在应用中固定屏幕方向。


在AndroidManifest.xml的activity中加入:android:screenOrientation=”landscape”属性即可(landscape是横向,portrait是纵向)。

3.在相对应的Activity中继承重写onConfigurationChanged方法,可判断当前屏幕朝向,监听屏幕变化以此做出响应。

@Override
	public void onConfigurationChanged(Configuration newConfig) {
		// 切换到了横屏
		if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {
			
		} else {

		}
		super.onConfigurationChanged(newConfig);

	}

4.用onRetainCustomNonConfigurationInstance()方法来暂时保存数据。

@Override
	public Object onRetainCustomNonConfigurationInstance() {
		// TODO Auto-generated method stub
		String kdInfoString = textViewRender.getText().toString();
		return kdInfoString;
	}

然后在对应的地方使用getLastCustomNonConfigurationInstance()获取数据。
textViewRender.setText((CharSequence) getLastCustomNonConfigurationInstance());

5.判断横竖屏

可以在onCreate()里判断横竖屏加载相应的XML视图文件
public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		if (this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) {
			// 横屏
			setContentView(R.layout.activity_main_land);
		} else if (this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT) {
			// 竖屏
			setContentView(R.layout.activity_main);
		}
}





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值