从昨天开始,我为此感到困惑,我找不到解决方案。 屏幕旋转后,我的应用程序中有一些尺寸错误的元素。但是我有一种计算尺寸并更新它的方法。 屏幕旋转后,我只需要调用此方法即可。
首先,我从Override方法onConfigurationChanged()
中调用了此方法,但是此方法是在屏幕旋转之前执行的,因此我的方法由于具有旧值而无法更新高度。
我无法使用onResume()
函数,该函数仅在onConfigurationChanged()
之后执行,因为我的AndroidManifest中有android:configChanges="orientation|screenSize"
,因此没有调用onResume()
。
我找到了一些可行的解决方案,但我不想使用它。
确实,我尝试使用ViewTreeObserver.OnGlobalLayoutListener
,但问题是它无限循环。与ViewTreeObserver.OnPreDrawListener
相同,它无限循环。
所以我不知道该怎么办。我认为让侦听器一直循环并不停地执行我的尺寸计算方法是一个坏主意。
我还尝试使用orientationEventListener
,但其行为与onConfigurationChanged()
相同(在我的情况下)。
是否有一种叫做之后 onConfigurationChanged()
的方法?还是一种方法完成后调用方法的方法?