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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值