Android 在同一个Activity使用不同layout

来源:互联网 发布:odysseusota4 windows 编辑:程序博客网 时间:2024/05/22 00:41

需求如下:

Activity A屏幕纵向,Activity B横向,需要让用户在A跳转至B,在B输入资料后把输入结果返回A。


坑1:在B获取成功后返回A,屏幕会有短暂黑屏

坑2:在A设置startActivityForResult跳转至B,同时重写onResult接收B返回内容,B代码调用setResult,需要A的启动模式设置为SingleTask或SingleInstance,设置后发现在A调用startActivityForResult会立即回调onResult


换了个解决问题思路:一个Activity加载layoutA和layoutB

但需要解决:

1、android屏幕纵横屏切换,Activity的onDestroy和onCreate方法会被调用,需要避免Activity在转屏时销毁

2、动态更改屏幕方向


解决问题1:

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

android:configChanges=”orientation|keyboardHidden”
android:configChanges,这个方法主要是负责列出清单,当清单上用户指定的设置改变时,Activity会自己处理这些变化。
orientation,屏幕界面旋转(可能是用户手动旋转的),【注意:如果你的开发API等级等于或高于13,你还需要设置screenSize,因为screenSize会在屏幕旋转时改变】
keyboardHidden,键盘辅助功能改变


解决问题2:

a)在AndroidManifest.xml文件里设置默认方向,不然程序不能正常工作。

android:screenOrientation="portrait"

b)
参考代码:
 public void onClick(View v) { 
        //如果是竖排,则改为横排 
        if(getRequestedOrientation() == ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE) 
        { 
         setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); 
        } 
        //如果是横排,则改为竖排 
        else if(getRequestedOrientation() == ActivityInfo.SCREEN_ORIENTATION_PORTRAIT) 
        { 
         setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); 
        } 


0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 起诉了对方不来怎么办 在监狱里被打伤了怎么办 初三要体检没去怎么办 羁押人在看守所没判刑怎么办? 在看守所关两年了还没有判刑怎么办 开麻将馆被拘留怎么办 拘留31天了我该怎么办 收到一封拘留信怎么办 存钱的收据掉了怎么办 行政拘留法制没有批的怎么办 别人起诉我我该怎么办 去钟落潭看守所送衣服要怎么办 长城宽带账号密码忘了怎么办 预约考试密码忘了怎么办 健康证预约号忘记怎么办啊 人在看守所七个月还没结果怎么办 起诉书和判决书丢了怎么办 进了看守所信用卡逾期怎么办 公安局审讯室监控影相被删除怎么办 关进看守所以前的工作怎么办 上海初中借读生学籍怎么办 外地货北京三环怎么办 谁买了小产权怎么办 狗在小区丢了怎么办 太原回迁房多余的房子怎么办 回迁房被开发商抵押怎么办 回迁房源多开发商扣房怎么办 蝈蝈叫晚上怕吵怎么办 蝈蝈总不停的叫怎么办 按揭房没拿房产证夫妻离婚怎么办 按揭房子房产证还没有到离婚怎么办 结婚7年离婚孩子怎么办 合伙经营KTV股东意见不合怎么办 合伙生意转让意见不合怎么办 租完房子后悔了怎么办 通过中介买房产生纠纷怎么办 天津公租房资格证到期怎么办 买大房子后悔了怎么办 公款私存了该怎么办 外地人怎么办身份证在北京东城区 申请公租房有车怎么办