分类: android2012-03-21 16:191873人阅读收藏举报
今天在写程序中遇到如下问题,如此怪异,在网上找了很多,终于解决了问题:
java.lang.IllegalArgumentException: View not attached to window manager
解决方法:
在调用系统相机拍照相片后返回protected void onActivityResult(int requestCode, int resultCode, Intent data)方法,那么可能会抛出这个异常,原因就是返回activity后,重新运行onCreate方法,那些view重新画出来,某些需要初始化的变量没有设置好。处理这个问题,只要有两种方法:(关键第二点)
1. 限制屏幕翻转
可在AndroidManifest.xml中设定android:screenOrientation=”portrait”
2. 如果是需要翻转的,那么限制那些view做重画动作。
可在AndroidManifest.xml中设定android:configChanges=”orientation|keyboardHidden|navigation”
在Dialog转圈圈的过程中,如果手机屏幕方向改变,那么可能会抛出这个异常,原因就是屏幕翻转后那些view重新画出来,dialog在执行dismiss()的时候,
找不到原来的位置了。那么要处理这个问题,最简单的几种方法是:
1. 限制屏幕翻转
可在AndroidManifest.xml中设定android:screenOrientation=”portrait”
2. 如果是需要翻转的,那么限制那些view做重画动作。
可在AndroidManifest.xml中设定android:configChanges=”orientation|keyboardHidden|navigation”
3. 如果你又要翻转,又要重画view,那你就用代码去控制
- private void lockScreen(){
- Configuration newConfig = getResources().getConfiguration();
- if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE){
-
- U.dout("ORIENTATION_LANDSCAPE lock it!");
- setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
- }else if(newConfig.orientation == Configuration.ORIENTATION_PORTRAIT){
-
- U.dout("SCREEN_ORIENTATION_PORTRAIT lock it!");
- setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
- }
- else if(newConfig.hardKeyboardHidden == Configuration.KEYBOARDHIDDEN_NO){
-
- setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
- }else if(newConfig.hardKeyboardHidden == Configuration.KEYBOARDHIDDEN_YES){
-
- setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
- }
- }
-
- private void unlockScreen(){
- U.dout("unlock!");
- setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR);
- }
分享到:
相关推荐
问题解决:Fragment not attached to Activity的相关代码,更多详细内容请参考:http://blog.csdn.net/u012939909/article/details/53355836
在这种情况下,需要确保在Activity的生命周期方法中妥善处理Dialog的关闭,防止出现“IllegalArgumentException: View not attached to window manager”的错误。 以上是关于Android Dialog使用的一些关键点和最佳...
然而,不恰当的使用方式可能会导致各种问题,其中`IllegalArgumentException: View not attached to window manager`就是一个典型错误。这篇文章将深入探讨如何正确地在Android中使用Dialog,以及如何避免遇到上述...
XPopup 国内Gitee镜像地址: 承接软件外包服务 本公司提供全行业(即时通讯,直播,商城等)的软件外包服务,网站和系统定制,APP开发,微信小程序和公众号开发等,价格美丽。公司官网: 中文 | ...
水星MW300R无线路由上网设置方法.docx
在Android应用开发中,`Activity`是程序的基本组件,它负责与用户进行交互,而`Fragment`则可以看作是`Activity`的一部分或者模块化组件,可以在多个`Activity`之间复用。`Activity`和`Fragment`的组合使用是构建...
转换代码到图片使用 html2canvas,这是一个非常著名的从浏览器... ... 在实际使用的时候,有两个注意点: ...如果要完整截图,最好将元素从文档流中独立出来(例如 position:absolute) 2.默认生成的 canvas 图片在 retin
很抱歉,但根据您给出的信息,"ATTACHED" 和 "831" 并没有提供足够的上下文来生成一个超过1000字的详细IT知识文章。标题和描述都是相同的,而“字体”作为标签可能指的是文件内容涉及到字体设计、使用或技术。然而,...
Options not to expand empty hubs or hub with only empty hubs attached Options to jump to arrived and removed devices Option to expand tree items to make selected arrived and removed devices visible ...
This standard specifies the requirements for the USB Attached SCSI - 3 (UAS-3) transport protocol. The UAS-3 transport protocol defines a mechanism to transport SCSI commands using USB hardware. The ...
Working Draft American National Standard Project T10/2125-D Revision 05 14 July 2010 Information technology - Serial Attached SCSI - 2.1 (SAS-2.1)
USB Attached SCSI(UAS),全称为Universal Serial Bus Attached SCSI,是一种在USB接口上实现SCSI协议的技术,旨在提高外部存储设备的数据传输速度和效率。UAS标准是为了解决传统USB Mass Storage Class(UMSC)...
Slave Device Address Represents the physical device attached to the modbus network Data Type Internal data representation, (i.e. input, coil, register) Data Address Point address within the device ...
The attached code shows how to locate files in a directory using the FileSystemObject. You can search just within the specified directory or include all subdirectories in the search.
SAS (Serial Attached SCSI) 技术是一种先进的磁盘连接技术,它结合了并行SCSI(Small Computer System Interface)的稳定性和串行连接技术(如FC、SSA、IEEE1394)的高效性。SAS采用了串行通信协议,基于SCSI-3指令...
标题与描述均提到了"USB Attached SCSI - 2(UAS-2)",这是一个在IT行业中的重要标准,尤其在存储设备领域有着深远的影响。USB Attached SCSI,简称UAS,是为了解决传统USB存储设备性能瓶颈而设计的一种协议。在UAS...
2. 配置View Manager:在View Administrator界面中,设置数据中心、数据存储、安全策略等,同时创建桌面池,选择合适的虚拟机模板。 3. 创建虚拟桌面:这通常基于预定义的模板,通过克隆生成多个相同配置的虚拟机,...
After Bluebeam integration is set up, Unifier users can use Bluebeam to add comments and markups to files that are within the Document Manager or attached to business process records. 21.1 Unifier ...
As it is necessary to store some information with each block a dword is attached to the front of each block at -4 the aligned address. Thus, memory request for up to 28 bytes allocates a 32-bytes ...