android自定义控件 切换横竖屏报错
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了android自定义控件 切换横竖屏报错相关的知识,希望对你有一定的参考价值。
E/androidRuntime(14121): java.lang.RuntimeException: Unable to start activity ComponentInfocom.yy.myRadioButton/com.yy.Main: java.lang.IllegalArgumentException: Wrong state class, expecting View State but received class android.widget.TextView$SavedState instead. This usually happens when two views of different type have the same id in the same hierarchy. This view's id is id/mrg. Make sure other views do not use the same id.
因为横竖屏切换的时候默认会重新调用onCreate,即重新创建了一次控件
要处理这个问题,在AndroidManifest.xml的每一个需要禁止转向的Activity配置中加入android:screenOrientation=”landscape” 属性。
参数说明:
1.landscape = 横向
2.portrait = 纵向
避免在转屏时重启Activity
android中每次屏幕方向切换时都会重启Activity,所以应该在Activity销毁前保存当前活动的状态,在Activity再次 Create的时候载入配置,那样,进行中的游戏就不会自动重启了!
要避免在转屏时重启Activity,可以通过在AndroidManifest.xml文件中重新定义方向(给每个Activity加上 android:configChanges=”keyboardHidden|orientation”属性)。
在需要控制屏幕显示方向的Activity中重写 onConfigurationChanged(Configuration newConfig)方法,这样在转屏时就不会重启Activity了。
以上是关于android自定义控件 切换横竖屏报错的主要内容,如果未能解决你的问题,请参考以下文章
为啥在android studio 布局中使用自定义控件就报错