webview 禁用横竖屏切换_Android APP 简单高效的禁用横竖屏切换

默认情况下,Android APP的界面会随着手机方向的改变而改变,当手机处于竖屏状态,APP的界面也处于竖屏状态,而当手机处于横屏状态,APP也会自动切换到横屏状态。一般情况下APP的界面都是为竖屏设计的,一旦自动切换到横屏,界面可能就无法直视了。而且每次屏幕方向切换,当前的页面都会销毁并重新创建。

下面先做一个简单的演示

布局文件:

后台Activity文件:

package chengyujia.androidtest;

import android.app.Activity;

import android.content.res.Configuration;

import android.os.Bundle;

import android.widget.TextView;public classOrientationActivity extends Activity {privateTextView tvMsg;

@Overrideprotected voidonCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_orientation);

tvMsg=(TextView) findViewById(R.id.tvMsg);//默认情况下每次横竖屏切换,当前的Activity都会销毁,然后重新创建,并调用onCreate方法。

showOrientation();

}private voidshowOrientation() {if (getResources().getConfiguration().orientation ==Configuration.ORIENTATION_LANDSCAPE) {

tvMsg.setText("当前是横屏");

}else if (getResources().getConfiguration().orientation ==Configuration.ORIENTATION_PORTRAIT) {

tvMsg.setText("当前是竖屏");

}

}

}

下面是运行截图:

旋转屏幕到横屏时的截图:

禁用横竖屏切换,有两种方式,第一种是在配置文件中配置,第二种是在Java代码中设置。

第一种是在AndroidManifest.xml中,为activity节点配置android:screenOrientation属性,指定该activity为竖屏或横屏,我们将上面的这个activity的配置为竖屏,如下:

再运行测试,此时无论手机屏幕方向如何,该activity始终是竖屏的。如果android:screenOrientation="landscape" 则始终是横屏。

下面来看第二种,

只要在onCreate方法中加一句

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);

即可始终保持竖屏,如果要横屏,代码是

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);

如上,对于单个Activity禁用横竖屏切换是很简单的,但是实际项目中会有很多的Activity,如果每个都设置一下就太麻烦了。有没有一处设置全局有效的方法呢?答案是有的,只要对第二种方式稍微改造一下即可。我们可以写一个如下的BaseActivity类:

packagechengyujia.androidtest;importandroid.app.Activity;importandroid.content.pm.ActivityInfo;importandroid.os.Bundle;public class BaseActivity extendsActivity {

@Overrideprotected voidonCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);

}

}

让其它的Activity都继承这个BaseActivity类就能实现全局禁用横竖屏切换了。实际开发中常用这种方法,不仅仅是用来设置横竖屏,还有其它的公共功能也可以写在BaseActivity中。继承是个好东西啊,哈哈。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值