学习
实践
活动
工具
TVP
写文章

Activity横竖切换的那些事

由设备的物理方向传感器决定,如果用户旋转设备,这屏幕就会横竖切换 nosensor 忽略物理方向传感器,这样就不会随着用户旋转设备而横竖切换了(”unspecified”设置除外) user 用户当前首选的方向 > 这样横竖切换的时候不会重新创建Activity 第二种 setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); setRequestedOrientation android:configChanges 常用配置 在Android 3.2以后,如果我们进行下列的配置 ,这样的话横竖不会重新创建Activity,但是会调用 onConfigurationChanged 利用系统的加载机制自动帮我们加载相应的布局 如果大家在资源目录res 中添加了 layout-land(横向布局文件夹) 和 layout-port (竖想布局文件夹),重启Activity模式的横竖切换 , 可能有人会有这样的疑问,当我们设置了Activity的方向为竖或者横的时候,旋转屏幕并不会重新调用Activity的各个生命周期,那我们要怎样检测呢?

1.3K20

activity横竖切换的生命周期

模拟器横竖切换,ctrl+f11 界面activity会销毁,重新打开创建 第一种做法: 定死就是横 在清单文件,<activity/>节点部分,添加属性,设置屏幕朝向 android:screenOrientation android:configChanges=”orientation|keybordHidden|screenSize”,避免软键盘影响我们的生命周期,屏蔽多分辨率(4.0以下需要) 代码中判断窗体横还是竖 getWindowManager().getDefaultDisplay().getWidth() 宽度 getWindowManager().getDefaultDisplay().getHeigh() 高度,宽度大于高度是横

37020
  • 广告
    关闭

    2022腾讯全球数字生态大会

    11月30-12月1日,邀您一起“数实创新,产业共进”!

  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    android横竖切换activity生命周期变化

    1、新建一个Activity,并把各个生命周期打印出来 2、运行Activity,得到如下信息 onCreate--> onStart--> onResume--> 3、按crtl+f12切换成横时 --> onDestroy--> onCreate--> onStart--> onRestoreInstanceState--> onResume--> 4、再按crtl+f12切换成竖时 的android:configChanges时,切会重新调用各个生命周期,切横时会执行一次,切竖时会执行两次 2、设置Activity的android:configChanges="orientation "时,切还是会重新调用各个生命周期,切横、竖时只会执行一次 3、设置Activity的android:configChanges="orientation|keyboardHidden"时,切不会重新调用各个生命周期 ,只会执行onConfigurationChanged方法 总结一下整个Activity的生命周期 补充一点,当前Activity产生事件弹出Toast和AlertDialog的时候Activity

    60080

    Android Activity 常用功能设置(全屏、横竖等)

    Activity全屏设置 方式1:AndroidManifest.xml <activity android:name="myAcitivty"  android:theme="@android: Activity横竖设置 方式1:AndroidManifest.xml <activity android:name="myAcitivty"  android:screenOrientation   // 或者 “portrait” 方式2:代码实现 setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); 获取横方向 ().getConfiguration().orientation; orientation 的常用取值可以为 ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE(横) 或 ActivityInfo.SCREEN_ORIENTATION_PORTRAIT(竖Activity屏幕一直显示 1:AndroidManifest.xml添加权限 <uses-permission

    1.2K30

    Fragment横竖

    Fragment1是横时的Fragment Fragment2是竖时的fragment。 if(height>width){ //当手机竖,加载Fragment1 beginTransaction.replace(android.R.id.content,new

    52610

    TRTC横竖切换

    一、简介 本篇主要介绍TRTC通话时,横竖切换接口的调用示例、通话效果。 音视频通话完整链路,大致是:本地采集、本地预览、编码输出、网络传输、接收解码渲染。 用户要的只是4种效果:自己横竖切换+对方看到的横竖切换,但是sdk却有4X4X4=64种实现方式,一旦遇到问题就很费解。以下将引导:用最简单的方式,体验sdk的横竖切换功能。 还有一些手机,平放在桌面时,会发生横竖切换,这是手机重力感应触发的,请把手机支起来吧,或者关闭手机的重力感应。 关于sdk重力感应功能,可以参考这篇《TRTC横竖切换2,重力感应》 3、横后画面裁剪问题 横后画面只显示中间一小部分,看上去放大了。 setRemoteViewFillMode 另外,您也可以同步调整view的横竖比例。 链接 《TRTC横竖切换2,重力感应》

    1.8K135

    iOS横竖切换

    横竖切换实例 竖界面如何present横界面 竖present横是很普遍的场景,比如说视频播放场景的全屏切换,就可以在当前竖的界面present一个横播放界面的方式,实现横竖切换。 工程配置、AppDelegate、UIViewController这三者,在横竖切换过程的关系是什么? 自动旋转和手动旋转有什么区别? .... 仅仅知道切换适配代码,是无法形成横竖切换理解,也就很难回答上述的问题。 由于没有找到解释横竖切换机制的官方文档,以下根据自己的经验对这个切换的机制进行分析。 注意事项 其他横竖适配方式 1、视图适配:通过transform修改layer从而在视图上实现横,但是此时屏幕宽度、状态栏、安全距离等都保留竖状态,这种方式仅仅适用于横弹窗等部分场景; 2、新建 Window:由于App的适配是UIWindow为单位,那么理论上是可以新建一个UIWindow来横的界面; 横竖切换通知 NSNotification通知 [[NSNotificationCenter

    14820

    JavaScrpit判断横竖

    37160

    JavaScrpit判断横竖

    22330

    apicloud APP横竖切换

    APP开发中会遇到例如视频全屏播放如果不是使用原生模块,则需要通过将屏幕切换为横显示才能实现全屏。或者某些APP用户在使用pad体验时提供横竖切换体验会更好。 这个时候就需要使用到setScreenOrientation来实现横竖切换。 //屏幕根据重力感应在横竖间自动切换 (需要自动切换横竖可以用该值) auto_portrait //屏幕根据重力感应在竖间自动切换 auto_landscape //屏幕根据重力感应在横间自动切换 例子: api.setScreenOrientation({ orientation: 'landscape_left'}); 例如设置了横竖自动切换同时页面中应用了 可以通过orientationchange实现监听横竖切换事件 window.addEventListener("orientationchange", function(){ });

    20020

    Android开发使用Activity嵌套多个Fragment实现横竖切换功能的方法

    二、需求 近期项目遇到个横竖切换的问题,较为复杂,在此记之。 1、Activity中竖嵌套3个Fragment,本文简称竖FP1,FP2,FP3。 (一)先说说我走过的弯路,将横竖切换在一个Activity中实现。 (1)、在一个Activity中实现横竖切换难在什么地方呢? (2)、在一个Activity横竖切换,竖布局与横布局不一样,本文示例竖Activity中嵌套3个Fragment,横嵌套2个Fragment,首先会有很多页面状态需要记录,其次就是Activity (二)可取的办法,将横竖切换在两个Activity中实现 三、解决问题思路 1、首先当然是要让两个Activity能够横竖切,这里首先需要在AndroidManifest.xml中配置两个Activity 这时候就想到了Activity的onConfigurationChanged()方法。Google官网说横竖切换不希望大家用这个方法实现横竖切换,但是遇到了这样怪异的需求,不得不使用。

    1.3K20

    Android 横竖处理的知识小结

    代码中设置横竖的方法 我们有2种方法设置横竖: 在 AndroidManifest.xml 文件中,对 <activity 标签设置 android:screenOrientation 属性,具体的值和作用见下文 除非你对横竖切换有自己的一套逻辑,才需要在不同的逻辑下进行不同的设置。 横竖切换时引起的 Activity 重新创建 默认情况下,横竖切换会引起当前 Activity 销毁然后重新创建。 所以我们可以在 Activity 重新创建时根据当前横竖状态做一些差异化。最常见的就是根据横竖采用不同的 layout xml。 阻止横竖切换时 Activity 重启 虽然我们可以用上面的方法对横竖做不同的布局,但是横竖切换导致的 Activity 重新创建还会引起用户当前状态、数据的丢失。 横竖切换时的回调 一旦我们按照上述方法设置了 android:configChanges 属性,那么横竖切换时 Activity 将不会重新创建,那么当屏幕旋转时,我们在代码上怎么感知呢?

    1.6K40

    iOS 知识小集(横竖切换)

    iOS 中横竖切换的功能,在开发iOS app中总能遇到。以前看过几次,感觉简单,但是没有敲过代码实现,最近又碰到了,demo尝试了几种情况,这里就做下总结。 注意 ? 一般情形 所有界面都支持横竖切换 如果App的所有切面都要支持横竖的切换,那只需要勾选【General】 中的【Device Orientation】,选择希望支持的方向即可。 ? 然后使用一个基类控制器,在基类控制器中重写两个控制横竖的方法: // 支持设备自动旋转 - (BOOL)shouldAutorotate { return YES; } // 支持竖显示 另一种方式,是借助通知来控制界面的横竖切换。 还是整个App中大部分界面都是竖,某个界面可以横竖切换的情况。 这里有一个用JS 和原生item 控制横竖切换的Demo。地址 这是效果图: ? 横竖切换.gif 横竖切换总结就到这来了,Have Fun!

    1.5K41

    Android监听横竖切换功能

    偶然在项目中用到播放视频时,需要横将视频全屏播放,所以需要监听屏幕的横竖切换事件。 横竖切换监听效果: ? ConfigChanges,用于捕获手机状态的改变,当横竖切换,屏幕尺寸变化,弹出键盘,系统设置改变等条件,就会触发回调事件onConfigurationChanged。 “orientation“ 横竖切换。 “fontScale“ 全局字体大小缩放发生改变 重写Activity中的onConfigurationChanged方法,加上自己的处理事件。 activity的android:configChanges属性时,切换横竖会调用各个生命周期方法,横调一次,竖调用2次 设置activity的android:configChanges=”orientation “属性时,切换横竖会调用各个生命周期方法,横调一次,竖调用1次 设置activity的android:configChanges=”orientation|keyboardHidden”时,切换横竖不会调用各个生命周期方法

    1.2K20

    TRTC横竖切换2,重力感应

    一,简介 如前篇文章《TRTC横竖切换1,手动切换》介绍,TRTCSDK提供了三个api,支持手动调整横竖切换,组合起来有4X4X4=64种变化,满足所有横竖切换需求。 实际开发过程中,手动调用起来,往往还是很麻烦,所以sdk提供了自动横竖切换的接口,重力感应开关:setGSensorMode。 手机旋转180° 左不动,右边手机逆时针旋转180°,home键朝上 7、关闭重力感应,手机旋转270° 左不动,右边手机逆时针旋转270°,home键朝左 四、总结 非特殊需求,您不需要关注通话横竖切换 当您是安卓智能设备,采集画面有角度,或者有特殊横需求,可以关闭重力感应,换成全手动调用。参考前篇《TRTC横竖切换1,手动切换》

    31020

    TRTC横竖切换2,重力感应

    一,简介 如前篇文章《TRTC横竖切换1,手动切换》介绍,TRTCSDK提供了三个api,支持手动调整横竖切换,组合起来有4X4X4=64种变化,满足所有横竖切换需求。 实际开发过程中,手动调用起来,往往还是很麻烦,所以sdk提供了自动横竖切换的接口,重力感应开关:setGSensorMode。 手机旋转180° 左不动,右边手机逆时针旋转180°,home键朝上 7、关闭重力感应,手机旋转270° 左不动,右边手机逆时针旋转270°,home键朝左 四、总结 非特殊需求,您不需要关注通话横竖切换 当您是安卓智能设备,采集画面有角度,或者有特殊横需求,可以关闭重力感应,换成全手动调用。参考前篇《TRTC横竖切换1,手动切换》

    46450

    TRTC横竖切换1,手动切换

    一、简介 本篇主要介绍TRTC通话时,横竖切换接口的调用示例、通话效果。 音视频通话完整链路,大致是:本地采集、本地预览、编码输出、网络传输、接收解码渲染。 用户要的只是4种效果:自己横竖切换+对方看到的横竖切换,但是sdk却有4X4X4=64种实现方式,一旦遇到问题就很费解。以下将引导:用最简单的方式,体验sdk的横竖切换功能。 还有一些手机,平放在桌面时,会发生横竖切换,这是手机重力感应触发的,请把手机支起来吧,或者关闭手机的重力感应。 关于sdk重力感应功能,可以参考这篇《TRTC横竖切换2,重力感应》 3、横后画面裁剪问题 横后画面只显示中间一小部分,看上去放大了。 setRemoteViewFillMode 另外,您也可以同步调整view的横竖比例。 五、下一篇 《TRTC横竖切换2,重力感应》

    41430

    TRTC横竖切换1,手动切换

    一、简介 本篇主要介绍TRTC通话时,横竖切换接口的调用示例、通话效果。 音视频通话完整链路,大致是:本地采集、本地预览、编码输出、网络传输、接收解码渲染。 用户要的只是4种效果:自己横竖切换+对方看到的横竖切换,但是sdk却有4X4X4=64种实现方式,一旦遇到问题就很费解。以下将引导:用最简单的方式,体验sdk的横竖切换功能。 还有一些手机,平放在桌面时,会发生横竖切换,这是手机重力感应触发的,请把手机支起来吧,或者关闭手机的重力感应。 关于sdk重力感应功能,可以参考这篇《TRTC横竖切换2,重力感应》 3、横后画面裁剪问题 横后画面只显示中间一小部分,看上去放大了。 setRemoteViewFillMode 另外,您也可以同步调整view的横竖比例。 五、下一篇 《TRTC横竖切换2,重力感应》

    33330

    TRTC横竖切换2,重力感应

    一,简介 如前篇文章《TRTC横竖切换》介绍,TRTCSDK提供了三个api,支持手动调整横竖切换,组合起来有4X4X4=64种变化,满足所有横竖切换需求。 实际开发过程中,手动调用起来,往往还是很麻烦,所以sdk提供了自动横竖切换的接口,重力感应开关:setGSensorMode。 png 7、关闭重力感应,手机旋转270° 左不动,右边手机逆时针旋转270°,home键朝左 Screenshot_2020-09-22-20-02-17.png 四、总结 非特殊需求,您不需要关注通话横竖切换 当您是安卓智能设备,采集画面有角度,或者有特殊横需求,可以关闭重力感应,换成全手动调用。参考前篇《TRTC横竖切换》 链接: 《TRTC横竖切换》

    1K115

    扫码关注腾讯云开发者

    领取腾讯云代金券