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了。

参考技术A 在res里面建一个layout-port这里面放另一个布局,因为切换横竖屏如果你activity没有设置onConfigorationChange()这个方法,那么activity会被销毁,然后重新onCreate,具体看你代码,可能不是layout出问题,但是思路就是这样,一看layout,二看onConfigorationChange(),试试吧本回答被提问者采纳

以上是关于android自定义控件 切换横竖屏报错的主要内容,如果未能解决你的问题,请参考以下文章

使用VideoView自定义一个播放器控件

为啥在android studio 布局中使用自定义控件就报错

为啥在android studio 布局中使用自定义控件就报错

自定义video控件

WPF 在资源文件中使用自定义控件报错

android 实现切换界面的是啥控件,怎么自定义?如图,框框里的是怎么实现的.这个不是tabwidget吧?