关于android:configChanges="keyboardHidden|orientation"

一般在AndroidManifest.xml文件中都没有使用到android:configChanges="keyboardHidden|orientation"配置,当然还是很有用的哈

就是如果配置了这个属性,当我们横竖屏切换的时候会直接调用onCreate方法中的onConfigurationChanged方法,而不会重新执行onCreate方法,那当然如果不配置这个属性的话就会重新调用onCreate方法了,下面是测试

AndroidManifest.xml文件

  
  
<? xml version="1.0" encoding="utf-8" ?> < manifest xmlns:android ="http://schemas.android.com/apk/res/android" package ="com.test" android:versionCode ="1" android:versionName ="1.0" > < uses-sdk android:minSdkVersion ="8" /> < application android:icon ="@drawable/icon" android:label ="@string/app_name" > < activity android:name =".TestActivity" android:label ="@string/app_name" android:configChanges ="keyboardHidden|orientation" > < intent-filter > < action android:name ="android.intent.action.MAIN" /> < category android:name ="android.intent.category.LAUNCHER" /> </ intent-filter > </ activity > </ application > </ manifest >

main.xml文件

  
  
<? xml version="1.0" encoding="utf-8" ?> < LinearLayout xmlns:android ="http://schemas.android.com/apk/res/android" android:orientation ="vertical" android:layout_width ="fill_parent" android:layout_height ="fill_parent" > < TextView android:id ="@+id/tv" android:layout_width ="fill_parent" android:layout_height ="wrap_content" android:text ="横竖屏切换测试" /> < EditText android:layout_width ="fill_parent" android:layout_height ="wrap_content" android:id ="@+id/et" /> </ LinearLayout >

TestActivity.java文件

  
  
package com.test; import android.app.Activity; import android.content.res.Configuration; import android.os.Bundle; import android.widget.EditText; import android.widget.TextView; public class TestActivity extends Activity { EditText et; TextView tv; @Override public void onCreate(Bundle savedInstanceState) { super .onCreate(savedInstanceState); setContentView(R.layout.main); et = (EditText) findViewById(R.id.et); tv = (TextView) findViewById(R.id.tv); System.out.println( " 我是onCreate方法 " ); } @Override public void onConfigurationChanged(Configuration newConfig) { super .onConfigurationChanged(newConfig); if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE){ tv.setText( " 横屏 " ); } else { tv.setText( " 竖屏 " ); } } }
可以亲测一下,以验证我刚才说的结论“ 当在xml文件中配置了android:configChanges="keyboardHidden|orientation"属性,在横紧屏切换的时候不会重新执行Activity的onCreate方法,只是执行onConfigurationChanged方法,否则切换的时候会重新执行onCreate方法
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值